Added Guice 3.0 and base classes

Using Guice 3.0 for dependency injection:
- separate JVM and Android implementations cleanly
- now hardcoded to use JVM bindings, can be changed to select JVM or Android binding dynamically at run time.

Added base classes for review.