(PUP-1255) Don't use POSIX defaults on Windows

If the POSIX default mode of 0644 is used when creating files on windows the
SYSTEM ACE is lost on files that are not meant to have thier mode managed. This
updates the replace_file method to understand that a nil default mode really
means to use the platform dependent default.

(cherry picked from commit 2afddffb3657cf01fe1d58aebc7168a9ed255a07)

Conflicts:
	lib/puppet/util.rb