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.
Well, no, it doesn't.