initial commit for Google Guice

**please review**

* Use dependency injection to bootstrap the tools
* Add static injections for code that will no yet be initialized by Guice, and deprecate global static state
* reorganize the way the tool boots by creating a common FrontEnd class.