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

This patch adds all interfaces (even inactive ones) to setup output.
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>
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
New module 'set_fact' to define host facts

This module allows you to set host facts (or export play variables to the playbook scope if you fancy that).

The module also accepts complex arguments.

```yaml
 - action: set_fact fact="something" global_fact="${local_var}"'
 - action: set_fact
   args:
      fact: something
      global_fact: ${local_var}
```
Mention vars_files before the Roles section

The Roles section assumes some familiarity with vars_files, which this note attempts to briefly provide.
Fix test so that it is /bin/sh compliant (issue #2742)

The old test used syntax that appeared to be bash-specific and did not
work on platforms where /bin/sh did not point to bash.  See issue #2742
where copy to solaris hosts failed with the error:

    output: {'stdout': '', 'stderr': '/bin/sh: test: argument expected\n',
             'rc': 1}
Merge pull request #2745 from sfromm/issue2742

Fix test so that it is /bin/sh compliant (issue #2742)
Add region parameter and changed connection code.
Merge pull request #2746 from lwade/ec2region

Add region parameter and changed connection code.
Add region support to ec2 volume module.
Allow the environment string to be referenced by a bare variable name like:

environment: foo
Allow variables to be used raw in with_nested
Merge pull request #2747 from lwade/ec2_vol_region

Add region support to ec2 volume module.
Smush the braces in various places (hey, that rhymes) to avoid undo key=value splitting surprises
in new template system.
Allow args: var to be used to pass a variable in bare, and also templated versions should also DWIM.
Make --list-tasks work nicer with --tags