docker: Version 0.5.1 subsubtest changes

*  Sub-subtests previously executed by stage (initialize,
   run_once, etc.) across all sub-subtests.  This
   is a bit counter-intuitive, but possibly useful in some
   situations.  It's likely a more common need for sub-
   subtesting to progress through each sub-subtest in turn,
   running all stages from one, then the next.  Since most
   existing tests were written with the former (by-stage)
   behavior, that mode is retained (renamed) as class
   dockertest.subtest.SubSubtestCallerSimultaneous.  The
   new (by-subtest) class takes over the old name
   dockertest.subtest.SubSubtestCaller.

*  Extended Subtest class with method to help with
   logging of arbitrary errors and tracebacks to
   the console (not the test logs).  This will aid
   in differentiating between Docker errors and
   harness errors.

*  Improve subtest and sub-subtest console logging.
   Now, when a sub-subtest raises anything derived
   from the Autotest base-exception, that subsubtest
   fails but the remaining subsubtests continue. However,
   when a subsubtest raise a non-autotest exception
   then the message logged to error log, and traceback
   is logged to debug log.  In the later case, the entire
   subtest will immediatly run ``cleanup()`` then fail.

*  Made image module method remove_image_by_image_obj()
   part of the general (abstract) interface.  Fixed
   issue where tag could be deleted even if image is
   used by container.

*  Due to complexities relating to autotest client
   module interfaces, removed the ability to
   filter sub-subtests with the --args value.

*  Many spelling, style, pylint, and pep8 cleanups.

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

*  To help hide the autotest.client.shared namespace
   from subtests, added AutotestError base class
   to xceptions module.  This allows other modules
   to distinguish between Python, Autotest, and
   dockertest exceptions.  Updated unittests
   and documentation config. to mock this
   exception.

*  To help keep input separated from output,
   we should treat the Subtest.config and
   SubSubtest.config dictionaries as read-only.
   For testing-use, we have private instance
   attributes (stuff and sub_stuff) but for
   SubtestCaller use, we cannot access them.
   Added class/instance-level attributes for
   the caller base classes to use internally
   while they control the "flow" of sub-subtests.

*  Updated subtest module to only reference/raise
   exception classes from the xceptions module.
   This helps us further distinguish between
   Autotest, Dockertest, and Python exceptions.

*  Updated use of DockerCommandError to properly
   satisfy all parent class parameters.  Changed
   DockerCommandError to DockerValueError in
   ``__init__`` for parameter value problems.

*  Updated docstrings across several dockertest
   modules.

*  Added message R0904 disable to run_pylint
   re "too few public methods on blah blah blah".
   There are some base classes and interface hiding
   classes that were needlessly raising this.

*  Reduced default docker command timeout to 300
   seconds.

*  Fixed bug with subsubtest configuration processing
   where defaults were overriding parent subtest
   config, insted of the other way around.

*  Fixed logic bug in OutputGood possibly causing
   it to throw python exception.

*  Fixed bug in run_signal test incorrect quoting
   of shell command to run inside docker causing
   test to hang outside of docker.

*  Lowered default test timeout to 600 seconds.

Signed-off-by: Chris Evich <cevich@redhat.com>
docker: Adds subtests...rmi test

*  Several sub-subtests to test various aspects of docker rmi command.

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

*  Trivial code & config. cleanup
*  Docstring / documentation Updates

Signed-off-by: Chris Evich <cevich@redhat.com>