Docker: Version 0.1.1 updates

*  Support custom and/or private test modules and/or configurations.
   Otherwise modifying the default configs. will make version control
   grumpy.  Anything (includeing replacement defaults) defined inside
   the new config_custom directory tree will override content from the
   config_defaults (formerly config.d) tree.

*  Updated .gitignore file to ignore all files in config_custom
   subdirectory.

*  Subtests now support optionally setting the # of test iterations from
   their config section with the 'iterations' key.  If not present,
   it defaults to the class-attribute value.

*  Subtests and SubSubtests automatically log their configuration
   settings into the results/.../keyval file (including defaults).
   They will log a warning if no configuration section
   is found.  In this case, their config attribute is
   a copy of the defaults.

*  Added additional comments in various places, further clarifing
   decisions.  Updated documentation to version 0.1.1 reflecting
   all changes.

*  Added dockercmd module with classes to make running docker commands
   within subtests easier. Added unittests for dockercmd module.  Updated
   all bundled subtests to use dockercmd where possible

*  Added simple run_pylint.sh shell-script to run pylint across all python
   modules and tests.  Does not yet properly handle autotest deps. Will
   likely be replaced by inspektor.

Signed-off-by: Chris Evich <cevich@redhat.com>
Docker: Version 0.2.1 updates

*  It was a mistake to design ``dockercmd.DockerCmd()`` as a subclass
   representing it's result.  It made extending data and behavior
   nearly impossible since state was effectively fixed at init time.
   Reworked dockercmd interfaces to support ``timeout`` and ``ignore_error``
   parameters properly w/ help from Jiří Župka <jzupka@redhat.com>.
   Simplified the interface into a base-class with sub-classes to specialize
   it to particular purposes.  This also had the consequence of
   greatly simplifying unittesting.

*  Most tests were having to run each output checker function
   on both ``stdout`` and ``stderr`` from a ``CmdResult`` instance.  It makes
   more sense to bundle this data with the output checking as
   a configurable/extensible set of behaviors.  Jiří Župka
   <jzupka@redhat.com> pointed out that the exception-raising
   nature of the checks should be optional behavior.  Moved
   the former ``output.usage_check()`` and ``crash_check()`` functions
   under a new class, ``OutputGood()``.  It takes a ``CmdResult`` as
   input, then either raises an exception or represents a ``True``/``False``
   value upon scanning ``stdin``/``stdout``.  The set of scanner/checker
   methods is configurable and easily expandable w/o changing
   the interface.

*  Added very basic unittests for ``output`` module.

*  Copy-pasted the special ``mock()`` function around in unittests.
   Bad-practice since it should go into a central module.  However,
   I already had a problem with it accidentally being visible inside
   a test, where it became a ugly, nasty, difficult to track problem.
   It needs to be de-duplicated at some point, but only if/when it can
   be done safely.  For now, it's duplicated inside all unittests and
   the documentation's ``config.py``

*  Moved version-check inside ``Subtest`` class under ``__init__``
   instead of ``initialize()``.  Formerly, it was causing failures
   during ``cleanup()`` which shouldn't even be running if there's
   a version mis-match.

*  Brought some exceptions from autotest under the ``xceptions``
   module.  This is mostly to help prevent subtest code from
   needing to import 'autotest.client.shared.error'.  It also
   makes debugging easier since we can tell where exceptions
   are coming from.

*  Re-worked the build subtest so that it is entirely self-contained
   (not requiring any external content).  This requires a static
   version of ``busybox`` is available on the system.  The benefit
   is the build-test produces much more predictable output.  It's
   also a potential technique/content for a base-level image we
   could use at some point for other testing.

*  Updated other tests to make use of new DockerCmd and output interfaces.

Signed-off-by: Chris Evich <cevich@redhat.com>
Docker: Add helpers for frequently used docker image/repository operations

The dockertest.images module defines several independent interfaces using
an abstract-base-class pattern.   They are extended through a few subclasses
to meet basic needs. There is an assumption that the full 64-character long
IDs are safer to use than the short, 12-character ones.  It is also assumed
that callers are in the best position to decide what if any 'tag' content
is used and how to mangle repo/image names.

Signed-off-by: Jiří Župka <jzupka@redhat.com>
Signed-off-by: Chris Evich <cevich@redhat.com>
Docker: Add docker cli 'image' test

Signed-off-by: Jiří Župka <jzupka@redhat.com>