tor: Clean up control command API

A lot of this API is really ugly. This makes it slightly less ugly.
Data replies are also handled correctly now, and error handling is
improved.
Merge pull request #67 from special/control-commands

Clean up Tor control command API
tor: Handle multiline data replies from GETINFO
utils: Add PendingOperation class

This is a very simple QObject with signals and properties for a generic
asynchronous operation. It's intended to expose the status of operations
to QML.
tor: Write and filter torrc file manually

Tor's SAVECONF command will write all configuration to the torrc file.
That includes several keys with absolute filesystem paths, some of which
will cause Tor to fail at launch if the path is moved.

Instead, we get the config text from tor, and write it to disk
ourselves after filtering out unwanted keys.

To fix existing configurations, a rewrite of the torrc is triggered on
startup. That can be removed in some later version.

Fixes #59