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.




Design question.  It appears you are trying to offer an abstraction called PersistentDisk which is implementable by more than just GCE PDs.

I have *zero* knowledge about what parameters PD-like things in other cloud environments would need, which makes me uncomfortable trying to define a superset of them.  It is, guaranteed, going to be wrong.

Would it be awful to just make this a GCEPersistentDisk module and wait until we have a couple other similar implementations before we unify?