Create a configuration update utility

Extracted from proxy/config
Change proxy config to reuse util/config

Splits endpoint and service configuration into their own objects.  Also makes
the endpoint and service configuration tests correct - there was a race condition
previously that meant tests were passing but not checking correct code.
First take at architecture diagram.
Merge pull request #472 from lavalamp/dia

First take at architecture diagram.
Retry failed release downloads

gsutil cp is prone to failure during initial creation of a Kubernetes
cluster. This 'until' loop will keep trying as suggested in the 'gsutil
cp' documentation.
Add a caching minion registry.
Merge pull request #465 from smarterclayton/simplify_config_for_reuse

Extract proxy/config common functions for reuse
Answer 2 FAQs about motivations for pods.
Merge pull request #497 from bgrant0607/master

Answer 2 FAQs about motivations for pods.
Merge pull request #495 from ryfow/retry-gsutil-cp

Retry failed release downloads
Revert "Retry failed release downloads"
Merge pull request #498 from GoogleCloudPlatform/revert-495-retry-gsutil-cp

Revert "Retry failed release downloads"
Merge pull request #483 from brendandburns/health

Add a caching minion registry.
Adds initial volumes package; Supports host-dirs

Adds the framework for external volume mounts.

Currently supports bare host directory mounts.

Modifies the API to support host directory mounts from Volumes
instead of VolumeMounts.
Adds EmptyDirectory volume struct

Adds EmptyDirectory to volumes. This represents a directory
on the host, given to a pod that should not persist beyond.

The current draft does not cleanup after itself.
API modified to use source; now supports EmptyDirectory

API is now modified to use a Source struct to handle multiple volumes.

Two volume types are supported now, HostDirectory and EmptyDirectory.