doc: use new zerovm Sphinx theme

This is a rough adaptation of the "nature" theme for Sphinx with the
colors used on zerovm.org. Things like fonts, text sizes, paddings and
margins are still missing.

I'll most likely repackage this later as a stand-alone Python project
so we can reuse it in other contexts.
tox: include {posargs} in sphinx-build cmdline

This is very useful for testing the documentation: you can run

  $ tox -e doc -- -E

to completely rebuild the documentation (the -E flag makes
sphinx-build ignore the cached environment).
Merge pull request #64 from mgeisler/zerovm-sphinx-theme

Add a ZeroVM Sphinx theme for docs
Move `deploy` code to zpm module

This minimizes the amount of code in the `deploy` command wrapper
function, and moves all of the logic to an API function in the `zpm`
module called `deploy_project`.

TODO: Break up the `deploy_project` into smaller chunks and write tests
for it.
tox: run cov report with py27 and py3 configs

Instead of running a separate coverage report (using only python2.7,
consequently), this change forces command-line coverage reports to be
run with py27 and py3. This is useful because the coverage numbers can
vary from version to version, given the need for try/except for
importing stdlib stuff. This is also helpful in case we need to use
something like `six`, which could introduce python version specific
branches in logic.
Merge pull request #65 from larsbutler/refactor-test-deploy

Move `deploy` code to zpm module
Merge pull request #67 from larsbutler/tox-cov-py27-py3

tox: run cov report with py27 and py3 configs
doc: use fonts from zerovm.org
doc: depend on zerovm-sphinx-theme package

This means that we no long have to include the theme directly in our
repository.
zpmlib: add ZPMException class

This is useful for generic ZPM exceptions which need to be
differentiated from even more generic exceptions, like RuntimeError.
miniswift: rename _swift_url to _swift_service_url

Due to how this is used on other parts of the code, this help make the
content of this variable explicit. It's not just a "swift url", it is
specifically "the url of the swift service", given to us by the Keystone
service catalog.
miniswift: stop searching once swift srvc is found

When we retrieve the service catalog from Keystone, we do a linear
search through the catalog in order to find the swift service. Once we
find the service, there's no sense in continuing to search through the
rest of the catalog.

This change simply adds a `break` in the loop to accomplish that.
miniswift: raise if no swift service is avail.

In the SwiftClient class, it would seem kind of point to allow the
`auth()` process to look for a swift service, not find it, and then
carry on like everything is okay.

This change asserts that if there is no swift service available, we
raise a `ZPMException` immediately.
test_miniswift: add tests for SwiftClient.auth()

This brings `miniswift` test coverage to about 69%. It's not great, but
it's an improvement.
Merge pull request #68 from mgeisler/zerovm-sphinx-theme

Externalize ZeroVM Sphinx theme
Merge pull request #66 from larsbutler/miniswift-refactor-and-test

miniswift: refactor and test
Refactor default UI templates
deploy: expand glob patterns in 'ui' section (fixes #63)
Merge pull request #69 from mgeisler/ui-glob-patterns

Add support for glob patterns in 'ui' section
fix typo at bottom of intro page