Allow creating unbootstrapped `TorClient`s (and `DirMgr`s)
This commit changes how the TorClient
type works, enabling it to be
constructed synchronously without initiating the bootstrapping process.
Daemon tasks are still started on construction (although some of them
won't do anything if the client isn't bootstrapped).
The old bootstrap() methods are now reimplemented in terms of the new create_unbootstrapped() and bootstrap_existing() methods.
This required refactoring how the DirMgr
works to enable the same sort
of thing there.
closes #293 (closed)