(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
Indeed, that's why I was specifically asking about `~/`. I'm ready to accept that we only support your proposed usage pattern, but letting `~` just map to the running user would make for a poor user experience imho. (After all, the agent is likely still more common than `puppet apply`.)