Adding caching to proxied requests

Cache duration defaults to 2 seconds and can be overriden by specifying a `cacheDuration` in the config yml file. I also added a new meter so we can monitor how many actual requests are made. 

Now that we cache all requests to a specific health check it made the test config very boring as all of the  environments registered the same health check. 

So I added a property to enable test mode called... `testMode`, which creates lots of random health checks on different URLs and now the test config envs all point to different healthchecks.  This is `false` by default

Added Java 7 as the compile version as I used a multicatch.
Repackaged healthchecks and added new test for new ProxyService. 

Did some annoying formatting.