New module: ec2_ubuntu_ami

This module will retrieve the AMI of the most recent official Ubuntu
EC2 image for a given Ubuntu release.
Rename to ec2_ami_search
Genericize module to support multiple distros

Make the module implementatino more generic to support distributions
other than Ubuntu in the future.

Adds distro as a new parameter.
Allow for reuse of allocated but unassociated Elastic IPs.
Extend ec2 module to support spot instances
Added version_added for spot instance parameters
Add ability to disable the Source/Destination check on EC2
Add capability check for parameters on request_spot_instances
[s3] Compatibility with fakes3.
ec2_vol supports name / id to mount volume on instance

* volume_size no longer required if name/id are provided
* id is volume-id
* name is volume Name tag
* special checking is provided
Add option to enable the sysctl -e option
Reworked PR to avoid repeating the command
ec2.py: Make sure ec2_placement gets handled correctly

ec2_placement was missing from the inventory variables ec2.py was
producing.  Make sure that gets properly included rather than ignored.
Added user_data parameter to nova_compute module - currently no file parsing just text - Re issue #4992
library/digital_ocean: Adds the missing backups_enabled create option
Add rax_identity module

For some tasks, I need to drop the username/api_key into configuration
files. Rather than rely on how I'm calling the rax modules. It seemed
more appropriate to authenticate against Rackspace and return the wealth
of information contained in the pyrax identity payload with other
modules/templates.
added elasticache vpc security group ids
add security groups to elb_lb
Added wait_timeout parameter
Make sure droplet deletion works even when idempotency is achieved using 'name' and 'unique_name' rather than 'id'