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.