module.run_command is intended to bypass the shell here, so can't do ">>"
Fix test_async by using env python
Fix ec2_facts module by removing stray fail statement
Fixes #6411 Return None for ec2 api endpoints that return 404
Fixed references to missing method in ec2 modules

Change-Id: I9b89d433b545269d111b3c290b6411aabf58dd24
Wrap crypto.hash imports with try/except
Check for hash availability during vault operations
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.
Expand environment variables and tildes passed to commands generically across the board.
Don't process shell commands as arrays.
Use same implementation as ssh.py for "is in host file" checks in module code, prevents git module from adding keys more than once.
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
Adding validate_certs to all modules that use fetch_url
Remove validate_certs parameter from fetch_url calls
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
Make sure the cwd exists in run_command before trying to use it
git: Execute git commands in `dest` directory
Only use cwd in run_command kwargs if the directory exists