Docker: Version 0.3.1 updates

*  Make SubSubtest class from 'dockerimport' test into
   a standard interface.  It will be used again later
   by the 'pull' test.

*  Allow the tester to specify on the autotest command-line,
   which subsubtests to run, and in what order.  For example,
   to start only the subsubtest "good" under the "pull" test:

   ./autotest-local --verbose run docker --args="docker_cli/pull:good"

*  Many coding style and whitespace fixes.

*  Frequently, subsubtests need access to their own and parent
   test configuration options.  Sometimes there are subtest
   options which should also apply to subsubtests.  Since the
   subsubtest config. is coppied into a python-dict anyway,
   it's trivial to inject the parent subtests config options
   as well.  This helps avoid possibly duplicate lines in
   subsubtest configurations.

*  Several image module class methods have no defined
   return type.  Make this part of the interface standard
   to avoid any doubt/confusion.

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

*  Removed individual 'config_version' overrides from all subtest
   configurations.  Master, [DEFAULTS] now specifies for all
   bundled test config versions.  In practice, testing environments
   will copy the shipped defaults under config_custom/ which overrides
   but is ignored by git.  Therefor, the intent of protecting config.
   customizations from changes in dockertest API still applies.  It
   simply requires less work when adding new shipped-test configs.

*  Ignore standard files produced/consumed by cscope e.g.

   find `pwd`/ -name "*.py" -o -name "*.ini" > cscope.files && \
       cscope -bv -i cscope.files -f cscope.out'

*  In an effort to reduce the work of API/test/config/docs
   version tracking, updated dockertest.Subtest base class
   to pull it's 'version' from it's configuration.  Unless
   overridden, this will now come from default.ini's [DEFAULTS]
   section.  Reducing development work while still flagging
   possible breakage of custom tests/config due to API
   changes.

*  To help separate 'input' from 'output' in subtests, added
   a 'stuff' attribute to the subtest base class.  This gets
   initialized to an empty python-dict.  After that it is
   totally ignored by the API so subtests may do with it
   as they please.

*  Similar to above, added a 'subStuff' attribute to the
   subtest.SubSubtest base class.

*  Updated all bundled subtests to use 'stuff' or 'subStuff'
   accordingly.

*  Added some more info to default subtest and subsubtest
   non-critical logging messages.

*  Updated/added some new comments to code in several places.

*  To avoid any possible confusion about relationships,
   renamed the SubSubtest.test attribute to
   SubSubtest.parentSubtest  Updated all bundled subtests
   accordingly.

*  Added a note to the subtest.SubSubtest class that it's
   interface is *like* that of Subtest, however it is-not
   itself a Subtest subclass.  This provides room for future
   expansion and/or divergence from the Subtest interface
   if ever needed.  This class may be renamed in the
   future (it's a pain to type).

*  Added/Updated docstrings on new subtest.SubSubtestCaller
   class.  Changed dockerimport subtest to use this new
   base class.

*  Updated main documentation for all the above changes
   and new test content.

Signed-off-by: Chris Evich <cevich@redhat.com>
docker: Adds subtests for pull command.

Subtests Pull contains some more subsubtests.

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