tests/test_zpm: test all the deploy things!

This adds tests for nearly all of the core deployment functionality, and
improves test coverage a lot. Previously, there was almost no test
coverage for this entire code path.
zpm: add _maybe_create_container function

This function will check that a target Swift container exists, and
create it if doesn't exist yet.
tests/test_zpm: tests for _maybe_create_container
zpm: (maybe) create container before deploying

`_maybe_create_container` is now called at the beginning of deploy (to
ensure that the target container exists).
tests/test_zpm: test pre-deploy container creation

This includes tests for the behavior of _maybe_create_container in the
deployment code path.