tox: add `cover` environment

This environment runs a test coverage report intended to readable on the
command line.
Cleanup imports

This organizes the imports by sorting and grouping them, and also adds
handling for import ConfigParser in python 2 and 3.
Add models classes for Channel and Manifest

These classes help to generate manifest files and the contained channel
definitions.
Add tests for Channel and Manifest classes
tox: include doctests in test runs

Tox/py.test will now look for doctests in docstrings.
Add util func for processing zvm-image args

The user can specify multiple --zvm-image arguments on the command line;
each image can include optional mount point and access (ro or rw)
parameters, which needs to be written to the fstab in the nvram file.

This function processes the command line arguments into something which
can easily be written into the nvram file.
Add __repr__ for Channel
Add create_manifest util function

This is a helper function to create a `Manifest` object for the zvsh
`run_zerovm` workflow.
zvsh_test: Add a test for Channel.__repr__
zvsh_test: Add a test for `create_manifest` util
Add NVRAM class for generating nvram files
zvsh_test: Add tests for NVRAM class
Add docstring to ZvArgs class
Add some helper funcs for handling runtime files

`_get_runtime_file_paths` is used to generate the paths to the nvram,
manifest, boot, stdout, and stderr files (based on the working
directory).

`_check_runtime_files` checks if any of these files already exists and
raises a RuntimeError if any do exist. This is necessary because zvsh
needs to write these files to the specified working dir (which can be a
temp dir) and should not overwrite files without warning.
Add a test for _check_runtime_files
Add `mock` to test-requirements.txt
zvsh_test: Fix pep8 violations
zvsh: Add `run_zerovm` function

This replaces the old implementation of ZvShell. This is still a work in
progress and there are still tests needed. As of now, most of the file
generation is well tested, but the entire workflow is not. We need some
good integration tests for this.

The gdb path through zvsh is unaffected by this change.
zvsh: Clean up imports
zvsh: Change zvsh run workflow to use run_zerovm

The main zvsh "run" workflow no longer uses the ZvShell class and has
been replaced is a better-tested implementation.

The "gdb" path remains unchanged.