Support for Openstack Swift

Hi,

We are running an environment based on Openstack, and the need arose to use Openstack Swift object storage with Salt as a repository for files (Java WARs, installation tarballs, etc).

Basing myself on the existing S3 and Openstack Nova support I've added the functionality required for basic operations with Openstack swift - an execution module, a utility module that calls the Swift library (python-swiftclient in Ubuntu Cloud Archive), and patches to fileclient.py and modules/file.py to support a swift://container/object URL format. As far as I know this is a scheme I just made up, analogous to the "de facto" s3://bucket/object format.

I hope this can be of use and integrated in Salt, please let me know if there's anything you'd rather have done differently.

NB: currently this only supports the Keystone-based (2.0) Openstack authentication, so it's only for fully fledged Openstack deployments, not stand-alone Swift.

Cheers
Anthony