Fix Guice injection.

- Execute Guice injection at run, not init time.
- add missing c'tors for strict injection.
- Remove all autoconfig classes
- inject everything explicitly
- use a proper injected PropertyFilteringMessageBodyWriter
-  replace the moving of the metrics registry through the servlet context
   with a simple, injected Provider which gets bound by Guice. Use
   ObjectMapper and Environment to provide necessary context objects.
Some Guice fixes

- remove the ReflectionHelpers, not actually needed for the scan logic
- fix bad Name in the GuicePropertyFilteringMessageBodyWriter.
code review feedback
Guice fixes outside SingularityService.

- Make sure that Stage.PRODUCTION is used everywhere.
- MesosClient is a singleton.
Mark singleton objects as Singletons.
Rework Dropwizard guice integration

- factor out more dw specific code, make it testable.
- remove scan binding code
- add dw provider for ObjectMapper, needed for testing
- add ConfigurationAwareModule for dw support.
Split up guice modules

Smaller, package specific modules for testing.

Conflicts:
	SingularityService/src/main/java/com/hubspot/singularity/SingularityServiceModule.java
Change configuration to use primitives.
Fix Singularity lifecycle

- remove SingularityStartable and SingularityCloseable, replace with DW managed
- use only a single curator instance and get lifecycle right
- fix State Poller logic, replace with inner class
- factor out SMTP logic into sender and mailer
Fix unit tests

Make the SingularityTestModule to actually wire up all the code required and override
the mocked out pieces.