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