fix following redirects
Addresses #5739 and cleans up copy.py

The copy action_plugin is not easy to read. Part of this commit is taking that file, restructuring it, and adding comments. No functionality changed in how it interacts with the world.

The fix for #5739 ends up being the assumption that there is a cleanup 'rm -rf' that happens at the end of the copy loop. This was not the fact before and we made a bunch of tmp directories that we hoped would end up being cleaned up. Now we just use the tmp directory that the runner provides and cleanup inline if it is a single file to be coppied or after the loop if it is a recursive copy.

As a part of this we did end up having to change runner to provide a flag so that we could short the inline tmp directory removal. This flag defaults to True so it will not change the behavior of other modules that are being called.
Dug into the remaining FIXME and replaced with comments to document the expected behavior.
small change to docs
small change to docs
Add exact_count and count_tag to the ec2 module.
Merge pull request #5900 from Afterburn/devel

Confirmed that these are small changes to the docs that help with the clarity.
Update docstrings
Make an example that sets the instance Names
Merge pull request #5901 from jctanner/ec2_tag_exact_count_2

Add exact_count and count_tag to the ec2 module.
Update changelog for ec2 exact_count and count_tag
Merge pull request #5826 from romeotheriault/fix_follow_redirects

A fix for uri module regarding following redirects. The old behavior would follow redirects either way. This change clarifies the functionality and makes it a bit more explicit. Comparing the old behavior to the new 'yes' == 'all', 'no' == 'safe' and now 'no' will not follow any redirects. Historic behavior is still supported and documented with a push to the new values.
Return a tagged_instances list for hosts that matched the count_tag
Check mutually_exclusive parameters before applying defaults
Make ec2 exact_count and count mutually exclusive
Support for -a to accept a file with test-module

If the CLI value for -a starts with an @, treat it like a file, and dump the contents into complex_args

This supports yaml or json.
Merge pull request #5906 from sivel/test-module-json

Support for -a to accept a file with test-module
Merge pull request #5885 from risaacson/issue5739_4

Addresses #5739 and cleans up copy.py