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}
```
sysctl check fails if a custom sysctl_file is given.
handlers must be run once

so remove all occurences of each host from the handlers notified by
lists
Merge pull request #2730 from tomkins/devel

sysctl check fails if a custom sysctl_file is given.
Mention vars_files before the Roles section

The Roles section assumes some familiarity with vars_files, which this note attempts to briefly provide.
Links are the best kinds of instructions

Link people right to this page on Github, so they can click "edit" right there. No need for them to search for the repo, figure out that the docsite isn't a separate repo, and navigate to the given dir.
Nit fix spelling of separate
Merge pull request #2737 from jkleckner/more-spelling

Nit fix spelling of separate
Allow play tagging in context of new meta-tasks.
Merge pull request #2734 from chadoh/patch-2

Documentation: Links are the best kinds of instructions
Merge pull request #2731 from stoned/flush_handlers-cleanup

handlers must be run once
Empty plays should still gather facts
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}