Fixes defect with stats reporting

* Resolves issue where once a single test
  failed, the metrics reported that all tests
  executed afterwards also failed

Change-Id: I0d6585e680a56b2ab25e3798c19d3dede81568cc
Fixes failure when no required paramaters are present in a data driven test

Change-Id: I7faae5974fdea51e78eefadb0cd54e76d45493d2
* fixed pep8 issue from previous fix
* removed str casting in xml element setting
  for _set_xml_etree_element function

Change-Id: I2a80b1782a084d9a2339055b199fd2cac3681844
subject: reduce os.path.expanduser calls. fix log directory bug
took out os.path.expanduser calls.
log directory folder is created by the config file name now instead
of what is sent in from the command line. this was creating different
directories for my_account.config and my_account even though they
both use the same config file.

Change-Id: I56bd55c21c9e032840b6532f6107653c62298452
Merge "Fixes defect with stats reporting"
Merge "subject: reduce os.path.expanduser calls. fix log directory bug took out os.path.expanduser calls. log directory folder is created by the config file name now instead of what is sent in from the command line. this was creating different directories for my_account.config and my_account even though they both use the same config file."
Removes deprecated bad xml tools mixin from base model

Change-Id: I9a172f93d320ec2e3a28d64d789429215efb98ac
Adds an AutoMarshallingDictModel

* Added AutoMarshallingDictModel to handle models
  that have unknown properties

Change-Id: I2d60cad33d23693efd693a050e4c3ed2fe6f458a
Added additional linux clients

* Create Directory
* Is directory present
* Fixed Pep8
* Fixed string concatenation
* Changed algorithm of verifying directory existance
* args used for better readability
* removed prints
Change-Id: Ib57fb37e087a4281e37e8e7a9f4f6b7caa592898
Merge "Added additional linux clients"
Merge "Removes deprecated bad xml tools mixin from base model"
Merge "* fixed pep8 issue from previous fix * removed str casting in xml element setting   for _set_xml_etree_element function"
Engine configruation and env management overhaul

General Improvements:
* opencafe should fully support installation in a python virtualenv now
* upgrades from previous installs of opencafe should be much less error
  prone.
* Os environment variable name consistency:
  CAFE_ENGINE_CONFIG_FILE_PATH
  CAFE_ROOT_LOG_PATH
  CAFE_MASTER_LOG_FILE_NAME
  CAFE_DATA_DIR_PATH
  CAFE_TEST_REPO_PATH
  CAFE_TEST_LOG_PATH
  CAFE_CONFIG_FILE_PATH
  CAFE_LOGGING_VERBOSITY
  CAFE_TEST_REPO_PACKAGE

cafe/configurator/managers.py
* Added managers module as a repository for all engine and test
  environment, config, and directory management logic.
* Defines the new PlatformManager, TestEnvManager,
  EngineDirectoryManager, EngineConfigManager
  (and temporary UnittestRunnerTestEnvManager) classes

  PlatformManager
  * Adds helper methods for retrieving current user information in a
    platform agnostic way.
  * Support for windows and virtualenv under windows.

  TestEnvManager
  * Intended to act as a setup interface to make it easier for future
    runners or scripts to setup the environment variables, directories,
    and files used by the engine at test runtime. Defines properties
    for setting each of the enviornment variables that the engine can
    access.  By default, all values are set to the values present in the
    engine.config file.

  EngineDirectoryManager
  * Adds a mechanism for updating the opencafe default directory of
    existing installs to include any future changes.
  * Changes the default opencafe directory from .cloudcafe to .opencafe

  EngineConfigManager
  * Adds a mechanism for updating the engine.config of an existing
    opencafe install to include any future changes.
  * Moves engine.config file from .opencafe/configs to .opencafe/
  * CCTNG_ENGINE section name in engine.config changed to
    OPENCAFE_ENGINE
  * use_verbose_logging option changed to 'logging_verbosity'.
    Previous values of False and True where changed to 'STANDARD' or
    'VERBOSE' respectively.
  * default_test_repo option value in engine.config changed from
    'test_repo' to 'cloudroast'.
  * config_dir option was added to set the default location of an
    implementation's config files.  The config default is set to
    .opencafe/configs
  * master_log_file_name option was added as a way to configure the name
    of the file that the root log handler writes to by default.
    (This was previously configurable only via os environment variable)

  UnittestRunnerTestEnvManager
  * Added as a stop-gap to mitigate the need for a full refactor of the
    current unittest runner.  Once the unittest runner is refactored to
    use the TestEnvManager, this class will be deleted.

cafe/configurator/cli.py
* Added cli module to define a command line interface for engine
  configuration and management.
* CLI is Installed on the system as 'cafe-config'.
  Currently only supports running the engine's post-install
  initialization.

cafe/drivers/unittest/fixtures.py
* base fixture now gets the master log file name from the
  os environment via CAFE_MASTER_LOG_FILE_NAME
* statistics now gets the root directory for the statistics folder from
  the os environment via CAFE_ROOT_LOG_PATH

cafe/__init__.py
* Removed __version__ attribute and moved it's value to setup.py

cafe/common/reporting/cclogging.py
* The engine's logging module previously pulled it's defaults from
  a mixture of the engine's config (via hardcoded path) and the os env.
  cclogging now gets all configurable defaults from the os environment.
* log verbosity now configurable via the os environment variable
  'CAFE_LOGGING_VERBOSITY', which can be set to 'STANDARD' or 'VERBOSE'.
* The name of the file written to by the root log handler is now
  configurable via the os environment variable
  'CAFE_MASTER_LOG_FILE_NAME'.

cafe/engine/models/data_interfaces.py
* ConfigSectionInterface added to data_intterfaces.
* removed default_config_file property in favor of class global function
  _get_path_from_env to support the engine config's need to define it's
  own os environment variable as a source for the default engine
  config file.

cafe/resources/github/config.py
* Now imports ConfigSectionInterface from engine instead of cloudcafe.

cafe/resources/launchpad/config.py
* Now imports ConfigSectionInterface from engine instead of cloudcafe.

cafe/drivers/unittest/runner.py
* All changes made where neccessary to support changes in os
  environment variable names.  Further refactoring will be required to
  make the runner fully capitalize on the new features provided by the
  configurator managers.

cafe/engine/config.py
* No longer a copy-paste of the  entire BaseConfigSectionInterface
  (previously done to solve a circular import).  Now inherits from the
  newly added ConfigSectionInterface.

setup.py
* Moved post-install stuff into the configurator.
* Cleaner support for post-install scripts. (Monkeypatches
  setuptools.command.install instead of writing and checking for an
  install file.)

Change-Id: Ice766060a96f6e839b61f46f0fe67d5cbd1f1eba
Merge "Engine configruation and env management overhaul"
Initial Behave runner

Change-Id: I54aac57506d20be3325433037ff225c8b5e05b1f