Organize codebase for acyclic modularity

Improve understandability, maintainability and testability by
eliminating cyclic dependencies throughout the codebase.

Before (`master`@093759a):
![before-093759](https://cloud.githubusercontent.com/assets/301810/4910907/e0c4a2ce-6485-11e4-9390-367b3960c947.png)

After (`organize`@c5809a9):
![after](https://cloud.githubusercontent.com/assets/301810/4910924/177e310e-6486-11e4-9691-dae08c744823.png) 

Additional changes include:

 - Introduction of the AbstractBitsquareModule base class and
   implementations, providing a more modular approach to Bitsquare's
   Guice configuration

 - Separation of the entry point of the application into two distict
   `main` methods. See the new `io.bitsquare.app.gui.Main` and
   `io.bitsquare.app.cli.SeedNode` classes

 - Pruning of dead code, particularly the elimination of
   `*TestUIRunner` types and associated resources

 - Elimination of many static fields and methods in favor of proper
   dependency injeciton

 - Replacement of checked exceptions with unchecked exceptions where
   appropriate

See extended comments in the commit log for further details.