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