changing permissions of modules to 0644
postgresql_user module: Gracefully handle ALTER ROLE on read-only postgres servers.
Fix postgresql_user to understand PG namespaces

Previously postgresql_user quoted user supplied identifers to create
grant statements that look like this:

    GRANT SELECT on "tablename" to "user";

Which only works if the tablename is not in a namespace.  If you supply
a namespaced tabelname like "report.revenue" then it creates this
incorrect statement:

    GRANT SELECT on "report.revenue" to "user";

Which will not find the "revenue" table in the "report" namespace, but
will rather look for a table named "report.revenue" in the current
(default public) namespace.  The correct form is:

    GRANT SELECT on "report"."revenue" to "user";

This approach could have the unfortunate effect that code that
previously relied on the other behavior to grant privileges on tables
with periods in their names may now break.  PostgreSQL users
typically shouldn't name tables as such, and users can still access the
old behavior and use tablenames with periods in the if they must by
supplying their own quoting.
bugfix: support path separators in module path

As described by http://docs.ansible.com/intro_configuration.html#library the library supports multiple paths to load modules from. 

Currently `setup.py` treats something like `/usr/share/ansible:/my/custom/modules` as a single directory name and results in the installed modules not being on the module path. (instead they are in a directory named `/usr/share/ansible:/my/custom/modules`) 

This commit simply takes the first listed directory as the install directory for the core modules.
apt: fixed pkg=<name>=<version> fails if package is not yet installed.

Reported and patch provided by https://github.com/msolo. Closes GH-5625.
Fixes #5679: lineinfile ignores newline in line argument
reorder usermod options
Fix a bug in "hg" module so that `pull` is not set to a version.

There is a bug in the `hg` module where if a `tag` is used it won't
properly be able to update to it.

This problem is exhibited on repository where a tag is moved from an
older commit to a newer commit.
Make default ANSIBLE_REMOTE_PORT None

The ansible remote port should be None, not 22. Having a default value
of 22 means that '-o Port 22' will be appended to the ssh connection
all of the time. This is incorrect as when one would like to use
something like an ssh configuration file (-F) that sets the port to
something other than 22.

Part of this change requires that we check that, in get_config, the
value is not None before trying to cast it into an integer or float.
Fixes #5819: Added --executables to gem uninstall command.
further compatibility with older versions of python-apt (#5853)
Revising method for parsing ranges from --limit subsets

Also added a new test (test_subset_range) for future validation.

Fixes #4620
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.
Allow explict setting of vpc_security_groups to allow modification of security groups of RDS instances within a VPC
The name parameter for search_opts is a regex string, so make sure we include start and end of string characters
Fix broken behavior when removing all auxiliary groups from a user
(e.g. 'groups=' in the user module).
ec2 module fails when state is not absent

tagged_instances is initialised in a scope not visible
when state is not absent.