Fix properly return buffer size on asynchronous read

The asynchronous read call may return a buffer shorter than the
requested size. We need to check the return value of the aio call
and update size accordingly.
Add stream test using ReadStream and aio_read
Merge pull request #8 from siboulet/add-stream-test

Add stream test using ReadStream and aio_read
Merge pull request #7 from siboulet/fix-aio-read-buffer-size

Fix properly return buffer size on asynchronous read