Refactor out I/O ops from util.Properties

Added
* util.PropertiesStreamReader
* util.PropertiesStreamWriter

writing now also supports writing to different charsets to be consistent with reading.
Correction: they're stripped while reading from stream, but one can add them programmatically. Testing that now.