add module param to Network & sub-classes

add module param to Network and sub-classes of Network, so that ansible 1.5.1 changes to LinuxNetwork apply to all Network classes.
Check for hash availability during vault operations
Expand environment variables and tildes passed to commands generically across the board.
Rewriting ssl validation to try multiple certs found in paths

Previously, the function checked only for a single CA root cert, however
some distributions may have multiple certs in a directory. This will now
try any .crt or .pem file contained within several common paths for
each platform.

Fixes #6412
Remove unused code from get_ca_certs() function
module.run_command is intended to bypass the shell here, so can't do ">>"
Adding validate_certs to all modules that use fetch_url
Remove validate_certs parameter from fetch_url calls
Don't append tags from roles to the plays tags list

Fixes #6393
Don't process shell commands as arrays.
setup module: Mark unsafe commands as use_unsafe_shell=True.
Merge pull request #6444 from risaacson/setup_unsafe_shell

setup module: Mark unsafe commands as use_unsafe_shell=True.
git: Execute git commands in `dest` directory
Use same implementation as ssh.py for "is in host file" checks in module code, prevents git module from adding keys more than once.
Compile ca certs into a temp file to reduce number of attempts

For those who may have a large number of certs found, this can reduce
the number of ssl connections attempted.
Work around for cwd stat problems with run_command and sudo

This fixes issue #6443
Add notes about module.run_command to coding guidelines.
Merge pull request #6446 from patricksmith/fix-git

git: Execute git commands in `dest` directory
Merge branch 'patch-1' of https://github.com/dmkoch/ansible into dmkoch-patch-1
Make sure the cwd exists in run_command before trying to use it