Improve pathname handling and canonicalized /usr move
This improves the general handling for third-party commands, and performs a full canonical move to /usr, which will be eventually needed anyway.
But if there are intentions to backport this version then the full move will not be doable right now I guess.
(I added a .gitignore file, because that was annoying during builds, but I can take it out and submit independently if you'd prefer.)