zpmlib.commands: move argparser setup function

We will need to import it when generating Sphinx documentation. We
cannot import it from the 'zpm' script, but we can import it from the
'zpmlib.commands' module.
tox: move requirements into doc/requirements.txt

This allows us to cleanly extend them in the future without touching
the tox config.
doc: use sphinx-argparse to include cmdline args

This makes it easy to include up-to-date command line synopsis in out
documentation.
Merge pull request #36 from mgeisler/sphinx-argparse

Integrate argparse with sphinx
deploy: uncompress zar when uploading

The middleware can only handle user images in the form of uncompressed
tarballs. Trying to mount a tar.gz file resulted in a silent error.

The error was accidentally introduced in 8c496e19 when I rewrote the
code to use zar.json to produce a tarball.
Merge pull request #38 from mgeisler/uncompress-upload

deploy: uncompress zar when uploading
doc: extract docstrings from zpm commands
doc: add anchors for zpm commands
commands: expand docstrings slightly
deploy: link to Swift command line tool
doc: shorten main page title
doc: add introduction document

This describes how to bundle and deploy a very simple "Hello World"
program. It should of course be extended and probably split into more
logical sections.
Merge pull request #39 from mgeisler/expand-doc

Expand documentation
Fix an shlex encoding issue for Python < 2.7.3

With Python < 2.7.3, shlex.split does not behave correctly with unicode
input. This change encodes the args passed to shlex.split in utf8, and
then decodes each element of the split.

It is well documented that shlex doesn't support unicode input prior to
Python 2.7.3. See http://docs.python.org/2.7/library/shlex.html.
Merge pull request #41 from larsbutler/shlex-unicode

Fix an shlex encoding issue for Python < 2.7.3
bundle: generate job description template (fixes #29)

The template is generated by 'zpm bundle'. For a zar called foo.zar,
the job description is included as foo.json in the root of the
tarball. Later, we might want to create a reserved directory for such
meta data.

To keep 'zpm deploy --execute' working, it will now load the job
description from the zar instead of generating it. The job description
template is then filled in with the Swift URL of the zar before the
job is executed.
bundle: simplify including zar.json in zar
bundle: include ui files in zar
deploy: upload job description template to Swift
deploy: upload UI files to Swift