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
zpm new: pass template arg to `create_project`
zpm: use zapptemplate to create proj template

This removes a lot of the complexity from the `zpm` module and relies
instead on the `zapptemplate` module for doing most of the work in
creating zapp.yaml and other project files.

This also integrates the `zpm new --template <template>` switch in the
project creation code.

Tests are modified to reflect this change. Some obsolete tests are
deleted.