setup: use setuptools over distutils

Distutils is the stdlib packaging tool. However, setuptools is the
preferred tool for projects that define dependencies:

  https://python-packaging-user-guide.readthedocs.org/en/latest/current.html

Setuptools is a dependency of virtualenv and pip, so most developers
will have it installed.

Using setuptools means that the dependencies will be automatically
installed when running 'python setup.py install'.

This is important for the Read The Docs build since it installs the
project like that instead of using pip. So the documentation build was
broken since the autodoc Sphinx directive fails when our dependencies
are missing.

If setuptools is not present, a warning is printed and the
installation/packaging can continue.
Merge pull request #153 from mgeisler/setuptools

setup: use setuptools over distutils
test_zpm: group tests for _deploy_zapp

This groups all of the tests for zpmlib.zpm._deploy_zapp into the same
test class. This is for better consistency and so we don't have related
tests scattered everywhere.
test_zpm: uniform naming for _deploy_zapp tests
test_zpm: add more checks to _deploy_zapp tests
test_zpm: add mock response to conn.get_container
zpm: add container checks before deploying zapp

Swift has eventual consistency, so we don't want to risk overwriting any
files. This can cause strange bugs.

The rules are:

    if container exists:
      if container is empty:
        deploy
      else:
        error: container must be empty
    else:
      container doesn't exist; create it
test_zpm: tests for _deploy_zapp container checks
Merge pull request #156 from larsbutler/deploy-container-mgmt

Better management of containers on `zpm deploy`
set correct content type for zapp files

*.zapp file is `application/x-tar`
now it will be set correctly on `deploy`
will also force `application/json` for job description json file
Merge pull request #155 from pkit/content_type

set correct content type for zapp files
setup: remove version from swiftclient dep

As far as we know, there's no particular reason to pin zpm to depend on
python-swiftclient>=2.1.0. Any version should suit our purposes.
Merge pull request #159 from larsbutler/fix-swiftclient-dep-version

setup: remove version from swiftclient dep