(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 disagree that `~user` is an absolute path. If you change the passwd field `/etc/nsswitch.conf` then you can can a different expansion for `~user`, so while you can do the expansion you are not guaranteed the same path every time.