py: Add stream reading of n unicode chars; unicode support by default.

With unicode enabled, this patch allows reading a fixed number of
characters from text-mode streams; eg file.read(5) will read 5 unicode
chars, which can made of more than 5 bytes.

For an ASCII stream (ie no chars > 127) it only needs to do 1 read.  If
there are lots of non-ASCII chars in a stream, then it needs multiple
reads of the underlying object.

Adds a new test for this case.  Enables unicode support by default on
unix and stmhal ports.
That's why it's important to have formal language spec, and separate it from any particular implementation (even reference one). https://docs.python.org/3/library/io.html#io.RawIOBase.read talk only about -1. If only all other descriptions in Py docs were so clear...