Expose the playbook to callback plugins
Spelling, grammar, layout changes, plus more examples and an orchestration chapter
Allow vault encrypted vars as extra_vars

Forward the vault_password to the yaml file utility.
authorized_key: Be more specific about manage_dir

- Explain which properties are managed when manage_dir is True.
Improvements to the rax inventory script
Treat 255 errors from raw as dark host

Any other module is able to detect a dark host, but raw was treating 255
as a return code from the module execution, rather from the connection
attempt. This change allows 255 to be treated as a connection failure
when using the raw module.
Allow you to pass in arbitrary rsync options. I also added help for it, and what version it was added in.
Fix the default url of get_xml function.

* This enable a user to configure uri in get_xml function
Example for queueing build in Jenkins
Update uri
ssh: Properly check for wrong su password
ssh: propagate prompt to _communicate()

_communicate() uses the prompt variable to detect wrong passwords early,
therefore it needs to be passed to it from exec_command().
ssh connection plugin: Make comments more verbose

Explain _communicate() more.
Output URL for debugging
Remove extra quote from the mysqldump password argument

The mysqldb Ansible module will fail if the state specified is import or dump with a '1045: Access Denied' mysql error for complex passwords.

This is caused by the extra quote around the '--password' argument to mysqldump, as pipes.quotes already quotes the password string.

>>> "--password='%s'" % pipes.quote('simple')
"--password='simple'"

>>> "--password='%s'" % pipes.quote('c0mplexp@ssword!')
"--password=''c0mplexp@ssword!''"

>>> "--password='%s'" % pipes.quote('password with space')
"--password=''password with space''"
Clarify the port value always defaults to 3306

While the [boto docs](https://github.com/boto/boto/blob/develop/boto/rds/__init__.py#L253) make it seem like the default value of `port` is changed depending on the engine chosen, AFAICT from looking at the code the default value is never changed from 3306.

I think the docs are intended to be read as "the default value used by <engine> is <port> so you should change `port` to that value".

If you don't specify the port value and chose the database engine as PostgreSQL you'll end up with a PostgreSQL instance running on port 3306.
redhat_subscription calls AnsibleModule() without argument_spec

The Rhsm object requires an AnsibleModule but it isn't created with an argument_spec and fails.  Since the rhn.module is set directly after, setting None for the required argument of Rhsm fixes the module.
debconf detail requirements and fix typos
Fixes to safe_eval
Splitting SETUP_CACHE into two caches, one for host vars and one for setup facts