WIP: Persistent disks proposal

This is a draft proposal for expanding GCEPersistentDisk to a fuller PersistentDisk framework.
The "cluster" scripts and the "cloudprovider" package work in tandem to provide an "environment".

Shouldn't an administrator be able to define their own environment, including storage?

I am imagining a Spring application where dependencies and their various implementations are injected.  The application can be configured to run in any environment and the code doesn't know any differently because of strong interfaces.

Wouldn't all of the capabilities be baked into K8s (cloud apis, nfs support, ceph, whatever) and then it's configuration details that define how K8s is running?