(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
Interesting idea. This is definitely not what it will do currently. I can see a danger with this kind of magic, too. When using `source` with a `puppet://` URI, the default owner is retrieved dynamically from the file server, so `~` would be dynamic and could change if the owner of the file changes on the file server.