ec2: ability to list existing volumes
Introduce an ansible_version dict as runner variable

  Given the version:
    "1.6 (ansible_version_var 14499e8bf3) last updated 2014/03/21 17:07:50 (GMT +200)"

  We get the special variable:
    "ansible_version": {
        "full": "1.6",
        "major": 1,
        "minor": 6,
        "revision": 0,
        "string": "1.6 (ansible_version_var 14499e8bf3) last updated 2014/03/21 17:07:50 (GMT +200)"
       }

	modified:   lib/ansible/playbook/__init__.py
	modified:   lib/ansible/runner/__init__.py
	modified:   lib/ansible/utils/__init__.py
fixed typos found by RETF rules in PY files

rules are avaialble at https://en.wikipedia.org/wiki/Wikipedia:AutoWikiBrowser/Typos
reworded copy option docs to be clearer
set type and default value
Fix parameters check for ec2_vol

Split the error check into two error checks and delay the
checks so that listing existing volumes works more nicely.

The error check should check that:
* One and only one of volume_size id or name is set

This fix adds the 'only one' part of that check and provides
more useful error messages.
apache2_module: whitespace cleanup

Remove trailing whitespace.
apache2_module: Handle dep resolution

The apache2_module module did not properly handle when a2enmod would
handle apache module dependancies.  It would always return a state of
changed.  I've updated the regular expression to properly parse that
output as well as the normal output.  A good example of this is the
mod_proxy_http module.
ec2_ami_search: new EBS types

In ec2_ami_search module, add support for the new SSD-backed EBS (ebs-ssd)
volume as well as support for provisioned IOPS (ebs-io1).
Error if private_key_file is group/world readable

Currently, if you have this, ansible fails with a generic error and
suggests running again with `-vvvv`. This isn't bad but pinpointing the
specific problem immediately is even more user-friendly.

```
$ ls -l devops.pem
-rw-r--r--+ 1 marca  staff  1679 Jul  2 11:25 devops.pem

$ ansible -m ping --private-key=devops.pem mt3-pyweb01
mt3-pyweb01 | FAILED => private_key_file (devops.pem) is group-readable or world-readable and thus insecure - you will probably get an SSH failure
```
win_setup improvements: Correcly outputs ansible_totalmem on computers with multiple ram chips
Added floating IP functionality to nova_compute
Split nova floating-ip pool logic

The desires around getting a floating ip associated with a pool and
getting a floating ip not associated with a pool is just different
enough that following it as one set of nested ifs is tricky. Split
the function into two, one for the pool and one for the non-pool logic.
Pass through nova region name

If the region name is specified in the config, we need to pass it
in to the nova client constructor. Since key_name is similarly optional,
go ahead and handle both parameters the same.
Add support for nova availability zones

If a cloud has availability zone support, it's possible to specify
an availability zone via the nova client. Add that as a config param.
Find IPs on OpenStack clouds without floating-ips

The floating-ip extension, while pretty ubiquitous, is not a
foregone conclusion. Specifically, Rackspace, while also
served by the rax module, is a valid OpenStack cloud and can
be interacted with directly via nova interfaces.

Add support for determining public and private IPs for
OpenStack clouds that don't use floating ips by reading
the public and private keys from the addresses dict.
Cleanup in nova after a failed floating ip

There is a potential leak of resources if there is somehow a failure
adding a floating ip to a server. Clean up after ourselves.
Consume standard OpenStack environment settings

The OpenStack client utilities consume a set of input environment
variables for things like username and auth_url, so it's very
common for OpenStack users to have such settings set in their
environment. Indeed, things like devstack also output a shell file
to be sourced to set them. Although in a playbook it's entirely
expected that variables should be used to pass in system settings
like api passwords, for ad-hoc command line usage, needing to pass
in five parameters which are almost certainly in the environment
already reduces the utility.

Grab the environment variables and inject them as default. Special care
is taken to ensure that in the case where the values are not found, the
behavior of which parameters are required is not altered.
Add common auth handling across openstack modules

Taking a page out of the ec2 config, make sure that all of the
OpenStack modules handle the inbound auth config in the same way.
The one outlier is keystone wrt auth_url.
Use mutually exclusive on nova floating ip params

ansible knows how to deal with mutually exclusive parameters, so
instead of coding that ourselves, use it.