Refactored error handling in io module

Alias exceptions from pyuv, and add an errno module
Removed unused imports
Renamed ReadBuffer to StringBuffer
Added return value to Stream.write

Returns True if the data has been flushed to the underlying resources,
False if it has been buffered.
Raised pyuv version dependency

0.10.4 is needed because Stream.write_queue_size was introduced