Fix reading odd number of bytes

Trying to read odd number of bytes now raises an exception. Also reading
zero bytes immediatelly returns.
Add flusing in REPL

REPL now flushes sys.stderr and sys.stdout in each cycle. Found out that
write_through parameter of TextIOWrapper is about internal buffer rather
than buffer.flush().
Switch to buffer protocol

Raw data of bytes, bytearray, or memoryview objects are now accessed via
new buffer protocol. The old way didn't work for memoryview objects in
Python 2.7 and was deprecated in Python 3.
Merge branch 'buffer_protocol' into Py2

Conflicts:
	win_unicode_console/streams.py