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