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.
Python docs are pretty clear about this - only -1 means "readall". I interpret that as on low level, the size is unsigned, and only (unsigned)-1 has a magic meaning.