Extract interface from DirectoryDownloader
Method added to open arbitrary directory circuit
Remove a couple of unnecessary methods.

1. Don't require manually storing current consensus
2. Don't remove a router just because a downloaded descriptor failed to
parse.
added autoclose flag to Stream

An autoclose Stream will mark for close the underlying Circuit when the
Stream is closed
Refactor of DirectoryDownloader
TorClient constructor to create with custom DirectoryStore instance.