rustc: Don't rpath to librustrt.dylib

This library no longer exists, there's no reason for this rpath to exist any
more.
rustc: Add a realpath utility function

This is required in rustc to resolve symlinks for utilities such as the sysroot
and the rpath values which are encoded into binaries.
rustc: Use realpath() for sysroot/rpath

When calculating the sysroot, it's more accurate to use realpath() rather than
just one readlink() to account for any intermediate symlinks that the rustc
binary resolves itself to.

For rpath, realpath() is necessary because the rpath must dictate a relative
rpath from the destination back to the originally linked library, which works
more robustly if there are no symlinks involved.

Concretely, any binary generated on OSX into $TMPDIR requires an absolute rpath
because the temporary directory is behind a symlink with one layer of
indirection. This symlink causes all relative rpaths to fail to resolve.

cc #11734
cc #11857