Fix `replace` arg for file.managed state, Fix #5460

Previously, if replace was False, we had correct behavior if the file
existed (we would fix perms etc), but if it didn't exist, we would just
touch the file.  Now, if the file doesn't exist it will act exactly the
same as in the replace=True case -- create the file from the source or
from contents.