Respect region_name in nova_compute

Signed-off-by: Oleg Bulatov <oleg@bulatov.me>
Allow raw and script to support su
Document the `ec2` group.

This group is useful when using multiple inventory sources.
Ensure params were set in ec2_vpc before accessing them

Fixes #6763
Docker: don't send wrong parameters to client.start()

As part of being updated for the 1.10 API, a couple of parameters were passed to the docker.client.start() command that it doesn't accept. This caused the module to error out if it tried to start any Docker containers. This removes those parameters so the module works again.
Support hosts without private ip without errors

Not all Linode hosts have a private ip. This fixes an actual error that was happening because the generated list of private ips is empty when there isn't one.
Added Abiquo inventory plugin
apt_key lists all keys in uppercase

allow for a little user error
Add Docker inventory plugin
apt_key: fix key lookup for 64 bit key ids

Fixes #7018 by extending `all_keys` to work with either short or long keys.

Also removes the ununsed method `key_present`.
docker: send 1.10 params if docker-py is new enough version
docker: exclude 'entrypoint' from comparing 'command' param with containers

The JSON the Docker API returns includes the container's ENTRYPOINT value (if it has one) with the 'Command' value. So instead of checking if `container['Command'] == module.params['command']`, we just check that `container['Command'].endswith(module.params['command'])` so the entrypoint won't affect a container being properly classified as matching the module params or not.

Also I refactored a super-long `if` statement into some temporary variables - I did it to help me figure out what was going wrong, and then it makes the code more readable so I kept it.
Large cleanups. Reintegrating all modules together for a guest
Add a better error message for service

While migrating my playbook to a newer ansible version, I faced
the error message "unknown init system, cannot enable service". It turned
out to be caused by a wrong service name that was not expanded anymore.

So by giving the name of the service that cannot be enabled and a more precise
reason, i think people will be able to diagnose their issue more easily.
Merge pull request #7076 from mscherer/better_message_service

Add a better error message for service
Fix collision in random filter name by merging functionality

Merges the functionality of the original jinja2 random filter with
the one we provide.

Fixes #7113
Make sure VARS_CACHE for hosts are updated with the play vars too

Fixes #6979
More config checks and clean up for vm_config settings
Creation complete
Give more information when a task is empty

I made a typo in a playbook and was great by:

    ERROR: expecting dict; got: None

The issue was a single - on the last line of a playbook.
With the name of the file, I was able to see right away where the
error was.