Add python-crypto and python-scrypt as python-syndicate dependencies.
API: added list_gateways_by_user_and_volume() and
remove_user_from_volume(), the latter of which is an efficient way to
not only delete all Gateways from a Volume that belong to a particular
User, but also revoke the User's access right (barring it from creating
more Gateways).

syndicated.py:  Rely on the Observer to provision the RG, since there
will only be one per Volume (however, it will be instantiated locally on
each VM, and instructed to listen to localhost).

syndicate.util:  Added provisioning.py, to make it easy to provision and
unprovision Gateways (allowing code re-use between syndicatelib.py and
syndicated.py).

OpenCloud models.py:  Add SyndicatePrincipal object, to hold a
SyndicateUser's keypair in the Django DB for the Observer to get at
later.

Observer(syndicatelib.py):  Add high-level operations (and corresponding
functional tests) to create a user and stores its keys, to find all
slice VMs and push a Volume's credentials to them, to fetch a user's
private key and use it to generate a Volume credential, and a few other
smaller bugfixes.

Observer(sync_*.py):  UNTESTED: finished code for synchronizing Volumes,
VolumeAccessRights, and VolumeSlice objects.