Refactor and simplify bash scripts

Simplifies run.sh by
- moving all common methods to functions.bash
- sharing the generate_settings_file function between run and
  generate-settings-file.sh
- making setting.sh into an executable script so that the
  following works
      source /path/to/my-khaleesi-settings.rc
     ./generate-settings-file.sh icehouse-multi-rhel7.yml

Change-Id: Iaf59ea066c2909393b879a84326c633b69da5bfe
get_nodes: more robust handling of network-type

When hosts are added, add_hosts gets called for 'nova' and 'neutron'
without verifying if the nodes_created and floating_ips have any value.
This resulted in long skip messages and fails when nodes_created is
None but floating_ips is just text "unchanged ... ".

This changeset
- ensures that tasks are skipped when any of the nodes_created or
  floating_ips is Node
- The task prints the current os_network_type and the expected_network_type
- simplifies when: '"{{ foo }}" == "bar"' to "foo == 'bar'"

Change-Id: I13daf729fa54c6198ccdde7ec669367712cd88e5
run.sh: fix typo in var names that caused critical errors

Change-Id: I606d8147811a1eb8f3c62ecfe237f6955cd7ee73
Collapse all fact setting to a single task

Use the template during set_facts that may or may not be set for
individual nodes. This gets rid of extraneous tasks just for slightly
different node types.

Do the same thing during get_nodes when first adding the hosts to the
in-memory inventory.

Change-Id: I3ae30b10e65c35456daecbee34d82bf4b0fd6a5a
packstack/neutron: add ml2-plugin role

Change-Id: I2789169304e3badfa59fb43ca23f5e646c2a1bb2
Refactors tempest role into setup and run

Splits tempest role into setup and run. Changes include
- split tempest/tasks/main into tempest/setup and tempest/run
- define appropriate defaults for the two new roles
- move common tasks to playbooks/tempest.yml
- minor: renames all tempest['foobar'] to tempest.foobar for legibility

Change-Id: Ibb788ed993b826de5dbcefe5d0995c5a539521d7
tempest: multiple setup methods (packstack, config_script)

Adds a flag tempest.setup_method to select how tempest should be setup
Preserves the existing behaviour to use the packstack/puppet scripts to
setup tempest. Setting tempest.setup_method to tempest/config_script would
use the redhat-openstack/tempest config_tempest script to setup and
generate the tempest.conf file.

Change-Id: I4e99a87a1df46ec34adf09ee3b05784030754b72
Support astapor and openstack-puppet-modules from source

Source support for astapor already present. Adds support for
openstack-puppet-modules from source. Cannot use git module yet since
recursive is not supported until Ansible 1.6.

Must set use_astapor, astapor_branch, astapor_repo and use_opm_src,
opm_branch, opm_repo.

Change-Id: Id00f4d0fcea4d41b0ec5cebdf739dbf0391421be
rhel,centos were missing the linux/tasks/main.yml

* setup the meta/defaults.yml to call the linux task

Change-Id: I3cdb7ed2da70356de8dc77643cf0630c7049fbdc