util: initial creation of util module

Includes the class "AtomicFileCreator". This class is intended for
atomically creating groups of files/directories, and rolling back
(deleting) if a problem is encountered, such as a file already existing.

This is useful for gracefully bootstrapping projects, and aborting (and
subsequently cleaning up) and avoiding overwriting existing files.
zapptemplate: initial project template code

This is meant to abstract away project file creation to allow for the
addition of more project templates.

Move `render_zapp_yaml` function from `zpm` to zapptemplate module.
setup.py: reformat deps list
setup.py: add `tox` to dependencies

This will be needed for python project bundling.
zappbundler: initial commit of bundling util

Currently just has python project bundling utilities, which mostly
handles fetching and bundling 3rd party pure Python dependencies.
commands: add `--template` flag to `zpm new`

This includes the default template of `python`. Functionally, nothing
changes. `python` is the default (and only template).
templates: add project_type to zapp.yaml templates