Setting.yml generation script

- run.sh: fix parsing args
- settings.py: fix tempest settings generation
- Adds test to test run.sh
- run.sh: fix collect_logs: failure when REMOTE_USER is not set
- test_run tests aio-rhel7
- run.sh: properly parse args, respect TAGS and SKIP_TAGS
- Remove Foreman from the add hosts task
- (cherry picked from commit 040baa227d9a00cd5ef498a8d5d9beeb0d57f8bf)
- Change pre to post in the foreman playbook
- (cherry picked from commit 5ed1d2c91fca1c3e81378b7620d748f476ac5f6f)
- settings: do not store tags and skip tags
- Ansible is broken is tags and skip tags are stored as
- variables. Probably reserved!
- run.sh: show settings files

- settings.py rewrite using CRUD functions

  Introduced Settings class to contain and handle the settings
  Introduced KeyPath class and keypaths (strings of keys separated by a
  dot)
  All configuration settings can be now addressed via a keypath.

  Order of the operations and defaults:
  job defaults are loaded from build/defaults.yml and tempest/defaults.yml
  The build paramaters are loaded from
  - job name (is splitted into basic components and assigned to config
    variables)
  - site/<site>.yml
  - build/<variant>.yml
  - tempest/<testsuite>.yml

  then a parameter can be overriden using four value sources, in order of
  ascending priority:
  - existent setting addressed via keypath
  - environment variable
  - cli command argument (when available)
  - generic CRUD function (--{update,set,delete,create}-variable)

  more than one generic CRUD function command line argument is allowed,

  CAVEATS
  - keys in keypaths cannot contain dots ".". When a dot is needed, a colon
  should be used instead (Ex "6:5" instead of "6.5")
  - numeric keys in keypaths during "create,set" are interpreted as list
  index and a list will be created

Change-Id: I79f22a41c0d5462ad6fc8efff9193fa7a692d9a3