Misc to merge

## NetStatus and ServerDescriptors ##

I think that Nik merged the recent work of Patrick and Zach into this branch recently. You guys know the       specifics of this better than I do.


## Imports ##

As development has happened, various work has been done to simplify imports to prevent circular imports. One   key change is that some small classes with few dependencies that are used widely across the project (most      prominently, `forward.Forwarder`) have been moved to `oppy.util`. By putting them here, they can be imported   from across the project with few side effects.

Globally shared instances have been moved to `oppy.shared`. This prevents the globally shared objects from     being instantiated as a side effect of importing other packages. Since any `NetStatus` instance sets           indefinite updates, this is crucial for making unit tests work.

As Nik has pointed out, there is still more to do on this matter, however. The most important change is the    near future is to refactor the entire project to restrict the use of `__init__.py`. The potential for circular references and their complexity *is not worth it*.


## Unit Tests ##

All unit tests run. However, small portions of unit tests which expect `NetStatus` to be able to return an     `OnionPath` of `RelayDescriptor` objects have been commented out to make the test suite run. This              functionality is coming soon along with Nik's other work refactoring `NetStatus`

I changed unit tests which require a `NetStatus` so that they create a new one for every test. My experience,  experiments, and readings indicate that doing so is important for maintaining consistent testing behavior.     (The one exception is the unit test meant to test `oppy.shared.net_status`.) Note that you can clean a dirty   reactor after a test using `oppy.tests.util.clean.cancelAllPendingCalls()`.


## CircuitHandshake ##

Work on this has been begun. The structure and interfaces are in place. In particular, see the contents of     `oppy.circuit.handshake`, `crypto.cryptostore`, and `crypto.cryptomaterial`.

The old crypto work still needs to be adapted to work from within these components.