Revert "make atomic_replace use shutil.copy2 instead of os.rename() so it will work across filesystems".

AR function was leaving some tmp files behind, want to revert, will have better implementation soon, this is the old way now.

This reverts commit f74a1fa4f0b1a928a85c1316dfceb42637624a2f.
clean up first_found to fix a few issues:

 - add a skip option so it won't raise an exception if you don't match anything
 - make it work as a drop-in replacement for first_available_file
 - document in the module comments all of the above cases
Merge pull request #2716 from skvidal/first_found_skip_fix

clean up first_found to fix a few issues:
Small spelling correction to authorized_key module docs
Merge pull request #2720 from base10/devel

Small spelling correction to authorized_key module docs
Showcase the new-style lookup plugin access in the authorized_key docs rather than the old-style $FILE
Fixup authorized key documentation formatting
Remove an extra space in the module execution line if no environment was set.
Typo in example, extra space breaks playbook.
Merge pull request #2725 from jtsoi/patch-1

Typo in example, extra space breaks playbook.
Ignore inventory config files when using an inventory directory.
Don't send unicode instances to the selinux module

This fixes #2632.  Briefly: specifying things like paths using complex
args in a playbook will make the objects unicode instances.  The selinux
module does not accept unicode instances for its char * arguments; it
wants str instances.

Per mpdehaan's comment on #2632 I just went ahead and converted all
paths to UTF-8.  I don't know if it would be better to do something like
converting to locale.getpreferredencoding(), but I factored all the
conversions out into new method _to_filesystem_str, so there's only one
place that needs to be changed in the future.
Instantiate callback plugins only once so we can set play/task objects on them and they'll stick.
Showcase the new-style lookup plugin access in the authorized_key docs rather than the old-style $FILE
Fixup authorized key documentation formatting
Ignore inventory config files when using an inventory directory.
Merge commit '53ac0bb' into devel
Merge pull request #2727 from dsedivec/devel

Don't send unicode instances to the selinux module
Since using platform.node, be sure to just return the hostname component.
Convert 'hacking' instructions to markdown, add more info.