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
ignore *.orig files

These files are created when there are merge conflicts.
bundle: generate HTML template if necessary (fixes #28)

This changes bundle to include an index.html file if the zar.json
doesn't already specify UI files.

The index.html is generated from a Jinja2 template. This template
language is quite simple and it is widely used (it is inspired by
Django) which means there is a big community around it.

When a zar is deployed, the UI files are again run through Jinja, this
time to expand deployment specific parameters, most importantly the
auth_url needed by the JavaScript. The default template also inserts
the *username* and *password* you use for deployment. Consider this a
hack to make testing easier.