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
module_utils/atomic_move(): Restore owner/group

Manually restore owner and group if both src and dest are on a separate
file system.
module_utils/atomic_move(): Use tempfile module

Fix a potential race condition by using the tempfile module.
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
Fixes #4777 add --force-handlers option to run handlers even if tasks fail
Update changelog for force-handlers
Merge branch 'atomic_move_restore_owner_group_rebase' of https://github.com/tyll/ansible into tyll-atomic_move_restore_owner_group_rebase
Revert "add yum module downgrade support"

This reverts commit cbd1da645756e6d6fbd255bde37d9be452c547fe.
'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
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