Add support for multiple ranges in a host

e.g.  db[01:10:3]node-[01:10]

- to do this we split off at the first [...] set, getting the list
  of hosts and then repeat until none left.
- also add an optional third parameter which contains the step. (Default: 1)
  so range can be [01:10:2] -> 01 03 05 07 09
Check if mysql allows login as root/nopassword before trying supplied credentials.
Update gem

I've added ability to install gems in system-wide manner with --no-user-install options
Added module for baking EC2 AMIs
fixed spelling errors, unused variables and unused import
Getting timeout errors this morning as AMIs are taking a bit longer to create, so I changed to timeout to 15 minutes
Rewritten s3 module to allow for additional modes of operation.
supervisorctl: add command-line options as module parameters

Adds more parameters which may be passed to supervisorctl:  config,
serverurl, username, password

Also refactored the various `module.run_command(build_a_string)` calls
into a single `run_supervisorctl` function.
Introduce exception AnsibleFilterError and use it in Jinja filters.  Ignore this exception when trying to find the name of a task for display (callback) purpose.
Only append non_unique parameter if a uid is provided as well
added region to spec
Merge branch 'devel' of https://github.com/evan82/ansible into devel
added note about AMI security
Bug fixes and enhancements.

Bugs:
(1) no longer allow empty jobs
(2) strip the header added by crontab package used in openSuSE and SuSE
(3) try not to leak temp files when things go wrong
(4) issue returning job names under certain conditions

Enhancements:
(1) Allow all special times not just reboot.
(2) Fail earlier by performing more input validation
(3) Add feature to allow removing cron file under /etc/cron.d

ToDo:
(1) Validate times (minute, hour, ...)
(2) Strip white space from fields such as name and job such that name=foo equals name=' foo'.
(3) More testing
Let someone specify a path to a Rabbit that's not installed in the usual place.
Minor typo
Keystone_user module: fix authentication needs tenant_name too

The keystone client needs to be passed tenant_name when authenticating the
user/password way. Also it needs auth_url instead of endpoint.
This fix adds login_tenant_name as a module parameter which is consistent
with the other OpenStack modules.
digital_ocean: don't run update_attr if wait=no

Sometimes when using digital_ocean with wait=no I get the error "No ip is found".  But with wait=no I wouldn't expect there to be any IP, that gets allocated later.   However, looking at the code, it turns out that with even with wait=no it waits up to 10 seconds for an IP to be allocated.  We could wait longer, but with wait=no that seems like the wrong choice; it's easy enough to grab an IP later with a wait=yes command.

To make this change I removed the call to update_attr in @classmethod add.  An add is always followed by an ensure_powered_on which will do the update_attr if wait=yes.   It would be possible to instead do a call to update_attr with no retries and ignore the errors but I figured it would be better to be consistently not return an IP than to sometimes return it and sometimes not.   Inconsistent behaviour makes debugging deployment scripts very difficult.
digital_ocean doc update
update_attr should wait for the full wait timeout before checking for a missing IP addres