subtests...run_env: Code re-organization

*  In order to better support base-class re-use, moved
   client/server code strings (data) into attribues on
   ``run_env_base()`` base class.  This way sub-classes
   are free to modify the strings w/o affecting other
   subtests.

*  In order to better support behavior re-use, moved
   ``check_env()`` and ``get_env()`` into base-class.
   Removed leading underscore from ``_init_container`` method.
   Moved contents of ``_cleanup_containers`` directly into
   ``cleanup()`` where it can be overridden if needed.

*  Fixed bug in cleanup where first 'already removed' container
   would cause removal to stop instead of continuing.

*  Fixed bug in port.run_once() where stdin could
   be closed closed to container out of sync. with
   it's execution state.

*  Synchronization with server and client container
   code execution (sent via stdin) incorrectly
   depended on CID availability rather than state
   of executing code.  Modified code strings to emit
   unique strings, added ''utils.wait_for()'' calls
   to synchronize on them instead.

*  Moved client/server container creation out of
   port.run_once() and into separate methods.  This
   will allow better code re-use if/when a subclass
   needs to override run_once()

*  Provide more uniform access pattern to
   InteractiveAsyncDockerCmd() stdin by making
   it into a property (just like stdout & stderr).
   Move line-by-line feeding from execute() into
   stdin setter.  Add attribute options for
   feeding in data all at once or line-by-line
   (default).  Add attribute option for extra
   checking each line ends with ``\n`` character.

*  Fixed bug where containers were removed even if
   remove_after_test was set False.

Signed-off-by: Chris Evich <cevich@redhat.com>
subtests...run_env: Add rm_link sub-subtest

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