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.
Not sure `$prop->readSection($section)` returns comments.