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.
Added module to handle nova security groups

This module is loosely based on ec2_group module.  However, rules are
handled slightly differently.  Specific rules are able to be removed vs
removing all "rogue" [1] rules.

[1] Rogue rules are existing security group rules, which are
    not included in the `rules` dict.
Added ability to manage nova floating IPs

This module is based off the ec2_eip module, but accounts for pools,
which is openstack related functionality.
Made a few canges as I learn more about modules

* Set check_mode to False, am not supporting this ATM.
* Cleaned up delete/create() into single update().
* Return the group_id if created or found so tasks can be chained.
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
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