Module to create EC2 snapshots

Two methods of creating a snapshot
* use volume_id
* use device_name and instance_id

The latter is more useful with inventory
Pick up default EC2 region from boto.config

This doesn't account for boto configs where e.g. RDS has one
default region and EC2 another - all will default to `ec2_region_name`.

However, this is just handy to allow an easy site wide default
region if existing configuration already relies on it.

Modules can be improved to mention this in the documentation and
turn off required=True where needed. But it works with `ec2`
and `ec2_vol` without change.
Make sure requested version tag gets downloaded

There is a subtle bug in how the git module currently works. If the
version you request is a tag name, and you've already got the repo
cloned, and the tag name is a new tag, but refers to the already checked
out working copy, the git module would exit early without change. This
is bad as it means the new tag ref was not fetched and could not be used
in later tasks.

This change will check if the version is a remote tag, and if the tag
doesn't exist locally. If that is true, it'll do a fetch.

The activity could still be seen as not a change, because the working
copy won't be updated, if the new tag refers to the already checked out
copy, but that's not different than before and can be fixed as a more
comprehensive overhaul of tracking change in the git module.
Change standard AWS access and secret key parameter names to aws_access_key and aws_secret_key. Fixes an authentication problem with the rds module and standardizes the naming convention on something more encompassing than ec2_*_key.
The name parameter for search_opts is a regex string, so make sure we include start and end of string characters
Adding the region to the output of the ec2 module's creation of a new instance.
call expanduser for src and dest
already call expanduser in action_plugin
Fix incorrect use of .join on list
Merge pull request #5964 from sl4mmy/with-dict

lookup_plugins: loop over hashes

Tests good with the global variables:
```
users:
  alice:
    name: Alice
    id: 12345
  luna:
    name: Luna
    id: 23456
```

and playbook tasks:
```
- name: Print records.
  debug: msg="User {{ item.key }} is {{ item.value.name }}  {{ item.value.id }}"
  with_dict: users
```
Fixing the unicode issue in uri for EL6 platforms

Fixes #5869
Merge branch 'git_version_tags' of https://github.com/j2sol/ansible into j2sol-git_version_tags
Fix fails on ubuntu due to missing /etc/motd

Some systems that we are testing on may not have /etc/motd. So we need to create a file that we can control and use that for the further tests.
Merge pull request #6165 from risaacson/fix_fetch_integration

Fix fails on ubuntu due to missing /etc/motd

Tests functional on centos6, ubuntu1204 and ubuntu1310 now.
Fixes #5255 yum: set disabled repos before enabled repos and fix the parameters used
Rename flatten funciton.

flatten(x) is used a lot in the various lookup plugins where in each it is slightly different. This is to make this name slightly more unique.
Merge pull request #6166 from risaacson/rename_flatten_in_dict

Rename flatten function.
Fix setup module to gather facts from PowerPC Macs.
Merge pull request #6172 from cchurch/devel

Fix setup module to gather facts from PowerPC Macs.
Merge pull request #5941 from sivel/rax-name-search-opts

rax module: Use regex start and end of string with name base filters