move all path expansion into "-fullpath" function

previoulsy, *some* path expansion (ie: ./ -> $PWD) took place in
"fullpath" while other expansion (ie: ~/ -> $HOME) was a requirement of
the caller.

here we move all path processing into the fullpath function, removing
duplication and ensuring consistent processing.

This fixes a bug in the "path" module, which would not properly handle
tilde-specified paths