Added replace module

Heavily based on existing lineinfile module, but where it literally tests a regexp against
*each individual line* of a file, this replace module is more analogous to common uses of
a `sed` or `perl` match + replacement of all instances of a pattern anywhere in the file.

Was debating adding `all` boolean or `count` numeric options to control how many
replacements to make in the destfile (vs currently replacing all instances)

Noted use of MULTILINE mode in docs, per suggestion from @jarv
now correctly checks absolute path for src= existance for links

also updated docs to be a bit clearer on symlink behaviour
fixed issue with tmp file (path can include filename) and added missing
else which made it try to link x2
Added ansible_date_time.weekday as a fact. This returns Monday,Tuesday,Wednesday,Thursday,Friday,Saturday, or Sunday depending on the remote servers time. Useful for backups the way I use it
'changed' key is not defined when task fails

fix KeyError introduced by fix of #6591.
Fixing ownership when atomic_move is creating a file while sudo'ing

Fixes #6647
Check to make sure the host is in the inventory vars cache before clearing it

Fixes #6660
Catch permissions errors related to opening a known_hosts file in modules

Fixes #6644
Merge branch 'file_fixes_agg' of https://github.com/bcoca/ansible into bcoca-file_fixes_agg
Fixes premature handler execution after adding force-handlers
Typo: assign not equal in boolean guard variable

Typo when variable controlling list of hosts left as available
Fix TypeError when using old simplejson lib.

On some very old simplejson does not support the 'encoding' and give
following exception:

   TypeError: __init__() got an unexpected keyword argument 'encoding'

This fix runs json.dump with no encoding key (such as before #a023cb) on
TypeError exception only.
Typo in setting task_errors variable
Strip() vault password file
strip() vault password file
Merge pull request #6679 from renard/fix-simplejson-module

Fix TypeError when using old simplejson lib.
Merge pull request #6673 from apenav/patch-1

Typo: assign not equal in boolean guard variable
Merge branch 'devel' of https://github.com/EvanK/ansible into EvanK-devel
Merge pull request #6658 from pilou-/fix_fix

'changed' key is not defined when task fails
Cleanup from merge of replace module and CHANGELOG update