Enable error_on_undefined_vars by default
Adding support for role dependencies.

Fixes #3686

Dependencies are enabled by adding a new directory/file named
meta/main.yml to the role. The format of the dependencies are:

dependencies:
- { role: foo, x: 1, y: 2 }
- { role: bar, x: 3, y: 4 }
...

Dependencies inherit variables as they are seen at the time of the
dependency inclusion. For example, if foo(x=1, y=2) has a dependency
on bar(x=3,z=4), then bar will have variables (x=3,y=2,z=4).

Different roles can have dependencies on the same role, and this
variable inheritence allows for the reuse of generic roles quite easily.
For example:

Role 'car' has the following dependencies:
dependencies:
  - { role: wheel, n: 1 }
  - { role: wheel, n: 2 }
  - { role: wheel, n: 3 }
  - { role: wheel, n: 4 }

Role 'wheel' has the following dependencies:
dependencies:
- { role: tire }
- { role: brake }

The role 'car' is then used as follows:
- { role: car, type: honda }

And tasks/main.yml in each role simply contains the following:
- name: {{ type }} whatever {{ n }}
  command: echo ''

TASK: [honda tire 1]
TASK: [honda brake 1]
TASK: [honda wheel 1]
TASK: [honda tire 2]
TASK: [honda brake 2]
TASK: [honda wheel 2]
TASK: [honda tire 3]
TASK: [honda brake 3]
TASK: [honda wheel 3]
TASK: [honda tire 4]
TASK: [honda brake 4]
TASK: [honda wheel 4]
TASK: [I'm a honda]  <- (this is in roles/car/tasks/main.yml)
Small cleanup, no need to call _get_role_path a second time
now missing dep gives nicer error and docs disambiguate as several libs
out there have same name.
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
Adding evaluation of role vars as the dep tree is built

This allows variables to be inserted into the role scope specifically
while also being inserted into the global scope.
Merge pull request #3867 from bcoca/pingdom_nicer_import_error

now missing dep gives nicer error and docs disambiguate lib
Adding documentation on role dependencies and variable scope/inheritance
Removing synchronize momentarily as it looks like this won't make 1.3 dates
Update changelog
Some install guide tweaks.
Merge branch 'role_dependencies' of git://github.com/jimi1283/ansible into jimi1283-role_dependencies
Moving some role deps stuff around a small amount.
Updated changelog
Fixing a small bug with the new role dependency feature

The block that added the original list of roles was indented too far,
and was only being reached if a role had dependencies. This resulted
in roles without dependencies from being added to the list of roles.

Credit goes to looped for reporting and diagnosing the issue.