Handle negative length_read value properly in response packing
Improve and unify some file object related log messages
Handle end-of-file condition during async file read operation
Rework API error handling

Instead of indicating an error in a boolean way in the function return
value and having a second function to get the actual error code, return
the error code directly.

This simplifies the error reporting and eliminates possible race
conditions while accessing the last error code data.
Add API function to abort an async file read in progress