tox: drop support for Python 3.2

Python version 3.0 to 3.2 had no support for u'...' Unicode literals.
The support was added again in Python 3.3 to make it easier to port
code from Python 2.x.

The lack of u'...' support has not been a direct problem for us, we
would like to use python-swiftclient instead of our own miniswift
module (#31). However, python-swiftclient only supports Python 3.3 and
later. More precisely, python-swiftclient tries to import simplejson
and this fails with a SyntaxError on Python 3.2.

The simplejson project will probably not support Python 3.2 anytime
soon:

  https://github.com/simplejson/simplejson/issues/66

We will therefore also drop support for Python 3.2 for now. We will
work with the upstream projects to see if it is easy to restore Python
3.2 support. The first pull request for one of our dependencies has
been positively received:

  https://github.com/kennethreitz/requests/pull/2064

Pip is also affected by this problem and an issue has been created:

  https://github.com/pypa/pip/issues/1839
zpm: use python-swiftclient (fixes #31)

We now use python-swiftclient instead of our own miniswift library.
This required some small changes:

* The new client will automatically notice when it needs to login, so
  the explicit calls to authenticate have been removed.

* Unlike miniswift, the put_object in python-swiftclient takes
  separate arguments for the container and object name, so the upload
  paths need to be split on the first '/'. This has been tested by
  hand since we don't have mocks for this part of the code yet.
miniswift: remove unused library
Merge pull request #126 from mgeisler/use-python-swiftclient

Use python swiftclient
commands: remove rst markup from help strings (fixes #122)

The docstrings are used in two places:

* Command line help accessed by 'zpm help'. We output the docstring as
  raw text here. Processing the help would be possible: I implemented
  this for Mercurial, but the code is not packaged right now.

* Auto-generated documentation. Before version 0.1.5, sphinx-argparse
  only generated a table with the command line flags. In version
  0.1.5, it began including the docstring as well, but as an blob of
  raw text.

Since we now have two places where the reStructuredText markup is
shown directly, it seems better to remove the markup. The docstrings
are now a little boring, but suitable for display in the console and
as raw text online.
doc: remove unused autocommand directive
Merge pull request #129 from mgeisler/clean-docs

commands: remove rst markup from help strings (fixes #122)
removed Rackspace from maintainer name

ZeroVM is open source, maintained by its team and larger community.
[Cleared by Van Lindberg, Rackspace VP of Intellectual Property.]
Merge pull request #130 from cczona/patch-1

Remove Rackspace from maintainer name
readme: add link to zpm documentation
Merge pull request #133 from mgeisler/link-to-docs

readme: add link to zpm documentation
zpm: (bundle) rename var containing auth params

The var was called "deploy"; it's been renamed to "auth", which I think
is more appropriate (since it contains, "auth url", "username",
"password" etc.). It doesn't really have anything specifically to do
with "deploy".
zpm: abstract _prepare_auth function

This function encapsulates the preparation of auth args, removing some
of the "clutter" from the `deploy_project` function.

This makes it easier to (potentially) compose small functions together
for multiple uses, and it makes unit testing easier.
zpm: (deploy) prepare authentication args first

This just cleans up the order in which things happen during deployment.
Previously, it was:

1. Get connection
2. Upload .zapp file
3. Upload job .json file
4. Prepare auth args
5. Render UI (with auth args), upload UI

The goal is to group the uploads together better, so that uploads all
happen together (and could be abstracted into a separate function). The
new order is as follows:

1. Get connection
2. Prepare auth args
3. Upload .zapp file
4. Upload job .json file
5. Render UI (with auth args), upload UI

No functionality changes here; this is pure refactoring.
zpm: abstract deployment to _deploy_zapp function

All of the actual upload/put calls are now done in `_deploy_zapp`.
zpm: add ZeroCloudConnection.authenticate method

The storage url and auth token are not cached on the connection until a
command is successfully executed. If `authenticate` is called, a
pre-authentication will be done to cache this data.
zpm: do preauth in `deploy_project`

Before we use the ZeroCloudConnection to deploy files, a preauth is
called. This is meant to ensure that the connection is always in a
consistent state before the actual deployment begins.

This helps with refactoring, too. For example, while trying to
refactor/reorder a bit of code that used this connection, I found that
the preparation of one upload relied on the fact that the previous
upload succeeded and set the `url` attributes of the connection object.

Doing this explicitly up-front prevents this sort issue from happening.
tests/test_zpm: add tests for zpm._prepare_auth
zpm: factor out deploy into Deployer class

All of the main functionality for deployment has been moved to the
Deployer class.

This makes for a good container for the various deploy functions and
utilities, and also will make things easier to test.
tests/test_zpm: test all the deploy things!

This adds tests for nearly all of the core deployment functionality, and
improves test coverage a lot. Previously, there was almost no test
coverage for this entire code path.