Adds Persistent Disk volume type.

Implements a generalized Persistent Disk resource with plug-able API and Mounter interfaces.

Currently only supports GCE API, but the Persistent Disk resource was made general enough to support additional APIs.




This is a limitation of GCE-a disk can only be attached as read/write to one instance, but can be attached as read-only as many times as you want. Kubelet *could* create it's own disks, but it adds more questions of behavior. Do we create a new disk with a generated unique name of every replication? Do we attempt to attach the same disk, etc? It might also require Kubelet to format the blank disk as well, or specify an image/snapshot as a source. A shared RW mount would theoretically work is both pods are "pinned" to the same VM, but for now I think we probably need to restrict replication/sharing PDs across pods to read-only attachments.

In the case of trying to attach a read/write disk to two instances, an error is thrown and the Pod is skipped on each sync-loop until the manifest is removed/deleted.