Deal with reading a buffer less than what was allocated.

With this fix, file_long_read now passes.
> I would like to change the stream protocol type signature to use mp_uint_t for the return values of read and write, and define a constant for errors such as #define MP_STREAM_ERROR ((mp_uint_t)-1).

Yes, that's what I talk about above either. On my TODO, but i'm a bit short of time now and heading towards vacation, so feel free to beat me on it.