Add support for stream and buffer protocols.

Stream protocol is abstraction of serial I/O. Buffer protocol is
abstraction of random-access I/O. These protocols are defined down
to C level, to allow generic, while still efficient algorithms
to be coded in C (like, buffered transfer between 2 stream objects,
saving/loading of buffer object to/from stream, etc). (Note that CPython
define buffer protocol on C level, but apparently not stream protocol).
Add generic implementations of Python read()/write methods for streams.

These can be used for any object which implements stream protocol
(mp_stream_p_t).
unix: Add basic implementation of io.FileIO object.

Note: only read/write/close methods are defined so far, and class
is not exposed (use open() factory function, as usual).
Merge pull request #114 from pfalcon/streams-bootstrap

Define buffer and stream protocols, and other starting bits of io.* framework, with io.FileIO-like implementation for Unix