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.
Merge pull request #7 from siboulet/fix-aio-read-buffer-size

Fix properly return buffer size on asynchronous read