pyatk.channel.uart: implement buffered reads, read timeout
pyatk.channel.uart: implement buffered reads, read timeout

Reads were not buffered; it was possible to read less than the requested amount, causing some commands
to fail.  Guarantee that if we are unable to read the exact amount requested, raise ChannelReadTimeout.

Add more docstrings.

hbock/pyatk