Improve Linux network facts incl. bridges, ppp, wwan devices

This patch adds all interfaces (even inactive ones) to setup output.
ec2_vol: update docs to match default device_name values for Unix/Windows.
ec2_vol: do no work if the instance has a volume mounted at the device.
Tweaked merge_hash to also affect Runner behavior
Added 'validate' feature to copy and template modules, now you can add a check to force copy to fail if the check fails.
had to add entry in file for it to accept as a option even though file itself ignores it.
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
Use psycopg2's string handling to escape password string

This allows the password to contain single quotes and should make it safe to
use randomly generated passwords (provided passwords can be represented in the
connection encoding).
Add availability zone parameter
allow URL spec for install
When saving to dest, check if we get redirected, and use the new
location header to set the dest file name if we only provided a
target dir. Only save if dest not modified.
apt module: part rewrite of the upgrade logic, consistently checking
the executable paths, adding 'safe' as an alias to yes, and adding
'full' to allow aptitude full-upgrade as an alternative to apt-get
dist-upgrade
add default=yes in upgrade argument spec
package and upgrade are not mutually exclusive, but when both were set, upgrade didn't happen
ec2_facts: add ansible_ec2_placement_region key/value pair for EC2 region.
Merge pull request #2670 from jsmartin/devel

Errors in Riak documentation.
Merge pull request #2605 from b6d/postgresql_user-quote-pwd

Use psycopg2's string handling to escape password string
user module: return public SSH key

Return public SSH key if the user module is called with generate_ssh_key=yes.
Since "user" doesn't overwrite files, this also allows querying of existing
public keys.

Used in playbooks together with the "register" keyword, the returned key can be
passed to the "authorized_key" module allowing easy setup of SSH public key
authentication between remote hosts.
Add module postgresql_privs

This Module allows to manage privileges on PostgreSQL database objects
(currently: tables, sequences, functions, databases, schemas, languages and
tablespaces) as well as group role memberships.

It is basically a wrapper around most of the functionality of PostgreSQL's
GRANT and REVOKE statements with additional detection of changes and support
for dry-runs (check-mode).

postgresql_privs should work with PostgreSQL 8.4 and above. Python Module
psycopg2 is required on the remote host.
Merge pull request #2673 from b6d/user-module-extension

user module: return public SSH key
Merge pull request #2676 from b6d/postgresql_privs-module-proposal2

Proposal for a module to manage PostgreSQL privileges (2)
Working on the FAQ.