Use the process Log instance, rather than status

Use the process Log instance, rather than status

* change log.subscribe's signature to pass a callback that's called with different args; change LogObserver to correspond
* decode bytestrings to unicode as they are added to logs, using a default function
* step.addLog and friends return a process.log.Log instance
* add configuration knobs for logfiles' encoding, defaulting to utf-8 and using 'replace' to avoid failed builds due to `UnicodeDecodeError`s

Note that this includes a number of commits from other pull req's.  I'll rebase as necessary with any fixes suggested there, so there's no need to comment here.  In particluar:

* 6bc0ff5, 67cc4ac - #1022
* 3755b7a, 94bcc3f - #1018