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.
Small fixups

- get condition for hostname right.
- add missing migrations module to service
- replace provider reference with CuratorFramework
Make leader only pollers only run when the instance is the leader.
LeaderOnlyPollers should only run when the Mesos Scheduler is running, too.
SingularityAbort now shuts down through the Dropwizard Lifecycle.

This gives the rest of the code a shot at doing a clean shutdown.
abort cleanup and minor style fixes
remove unnecessary mesosScheduler variable
cleanup merge
fix missing dependency
styling
Merge remote-tracking branch 'upstream/hs_guice_changes' into guice-changes