Code style fixes

Imports, spacing, warnings, typo, comments, license headers
Remove unused method parameter
Configurability for REST timeout length
Documentation and comments

Standardizing style: JavaDoc/GroovyDoc tag values start with lowercase
letters (except initialisms) and do not end in periods. They are
generally sentence fragments, not sentences.

How to upgrade to httpclient 4.2.* after AWS Java SDK upgrades.
Delete unused code path
Refactor health check methods to RestClientService
Use configurable timeouts
Choose best single Eureka node

Delay App Instance cache until Eureka server names are cached
Prevent wasteful, concurrent cache fills

There is no benefit to filling a cache with two threads at the same time.
There is also no point in queuing up cache fill events one after another.
However, a thread that wants a cache to be recently filled before doing
other actions should wait for the current fill process to complete.

Instead, choreograph a deterministic dance between threads waiting for
each other to set appropriate state. This requires a hook to enable
multithreaded unit tests.

Also, referencing the private variable "journal" from within an inline
anonymous closure does not work correctly when this method is called
on a subclass of CachedMap, such as the MultithreadedTestingCachedMap
subclass. The simplest solution is to use ordinary for loops instead of
"each". This can also reduce Groovy's permgen usage because the
unnecessary closures do not need wrapper classes.
Retry Eureka calls, fill address cache on failure

After each failed Eureka call, refresh the DNS cache of Eureka nodes
and wait a little longer before the subsequent call, up to three times.
Fix home page Eureka links to use Eureka CName
EurekaService unit tests
Use limited conventional retries as well

Even though they don't help with a lot of the common Eureka failure cases.
No harm in adding these, however. They could occasionally handle errors
more simply.
Remove unnecessary meta-field

Change based on feedback from Clay's code review.
I thought this was necessary but I must have been
doing something wrong when I was figuring it out.
Refactor to reduce duplication

Based on Clay's code review feedback
Merge branch 'master' into ASGARD-2-Retry-Eureka-calls

* master:
  ASGARD-1142 - Use strict health check
  ASGARD-775 - 404 for non-existent DBSnapshot
  ASGARD-1124 - Single EBS volume for m3 instances
  ASGARD-1145 - Turn off instance types html parsing warning email

Conflicts:
	grails-app/services/com/netflix/asgard/ConfigService.groovy
Reduce CodeNarc violations
Merge pull request #298 from joesondow/ASGARD-2-Retry-Eureka-calls

Asgard-2 - Retry Eureka calls on network failure