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