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"