Add support for data-driven unittests.

Makes it possible to parameterize a unittest test case method
and provide several sets of values for those test parameters so
as to execute that test for every set of data provided.

A test method needs to be named with the "ddtest_" prefix instead
of the unittest standard "test_" prefix to distinguish it from
regular unittest test case methods.

A test method needs to be decorated with the "data_driven_test"
decorator, and a dataset source provided to the decorator.

The unittest.TestCase class containing data driven tests must be
decorated with the "DataDrivenFixture" decorator.

Adds a unittest.TestCase class decorator, "DataDrivenFixture", to
apply the test multiplication logic.

Adds a test method decorator, "data_driven_test", to define the
datasource a data driven test will use, and denote that test as
a data driven test.

Adds a Dataset object, a class that defines a dictionary
to hold the keyword argument values for a data driven test, and
the name of the dataset itself.

Adds a module, "datasets.py" that defines several classes for
providing various user-defined and generic datasets to data driven
tests via list-like iterators.

Change-Id: I7f03500b4c72f11d2cfe7dea7be2ffed8a5b8981
Adds methods for working with the unicode codepoint space

Change-Id: If2e5c3232094116b8a9b71b1981fe3418aaceebc
Flake8 fixes for OpenCafe

* Removed unused imports
* Fixed invalid class name in linux_instance_client
* Fixed various pep8 issues

Change-Id: If269b7590f331a0d5cb11d4813bdf9b03dbbb417
Moved hacking file

* Moved hacking file to OpenCafe
* Added first draft of "Rules of Law"

Change-Id: Ia68c71284c16d2be9eff188259dc44ce114e8ced
Adding default content-type header

As a general rule, I believe that for the majority of cases, the "Content-
Type" header parameter should reflect the serialize format.

Change-Id: I39e006fe13342be666923f87eec7abbf2eb14626
Merge "Moved hacking file"
Merge "Flake8 fixes for OpenCafe"
Merge "Adding default content-type header"
Subject: Refactor runner. Change verbosity. Fix supress load
tests.
The runner is still a work in progress.
cleaned up some of the logic. added a -d option to
send arbitrary data (key=value) to the tests in order to do
things like turning skipIf's and skipUnless on and off or
turning debug statements on and off. verbosity has changed.
-v 0-3:
0 the number of fail, error, skipped.
1 is dots and the number of fail, error, skipped.
2 is method and the number of fail, error, skipped.
3 is the method, comments, and the number of fail, error, skipped.
worked the json file generation into the refactor.
changed the command line option for json result to True/False
and changed the check for the flag where it is called

fixed supression of load tests
added the changes to the fixture that make the runner changes
to verbosity work

Change-Id: Ie753a9220424761b1997d2672e367704a5929481
Re-added necessary imports for remote client

* Re-added imports that are being used dynamically to create
  an instance of the correct client. This is not a good implementation
  and will be refactored in a near future pull request

Change-Id: I8f3676db2dfc286c21380f77204cadc5a853ed12
Makes default test repo configurable via engine config.  Sets config file default to 'cloudroast'

Change-Id: Ie14c26b35abe7405ee9b2bb318d1be96b08865cb
Merge "Re-added necessary imports for remote client"
Merge "Makes default test repo configurable via engine config.  Sets config file default to 'cloudroast'"
Added more detail the hacking file

Change-Id: I4d062f6ac94535c7976d42a2f139da687c2e7e22
Subject: Double load fix
fixed a bug in the runner that was loading tests twice

Change-Id: I4e1f354774739a733f5e48344de7a527e0ea462f
Making the DataDrivenFixture more flexible and reliable

Fixes the issue where you have to define every function argument in the
dataset even when you have already set defaults on the function.
By extension, this change allows for you to set defaults on the given
data driven test function.

Change-Id: I9cd7aa322085620c809244549b5f72257752acac
Adding comment about test assert

Change-Id: Ia421b5d6fdbb4bf6872b5a73b8a869281407f24c
Adding resources section

This came out of a discussion with Sam and Jose where we realized that
we needed a location to put modules that use external resources. The
case and point for this is the "skip on open issue in Launchpad"
functionality.

Change-Id: I039f15cd3ad97e157b0c31ec2e43d3ce1e1c0e4e
Merge "Subject: Double load fix fixed a bug in the runner that was loading tests twice"
Adding skip if open issue decorator

Change-Id: I4eab7925dd762041fc41b359e808ff2464ba8152