(PUP-2867) Support ~ in file paths, allows to deploy to ~<user> directories

  Note: validation will let ~ pass, but munging will fail if the user
    does not exist since it calls File#expand_path
I think not - still the user running `puppet`, typically root.

I'm thinking along these lines:

    file { '~/.bashrc': owner => 'ffrank', content => '...' }

The user would expect this to end up in `~ffrank`, not `~root`, but this is not the proposed behavior at the moment, yes?