Rewrites to virtual symlink resolution

Numerous correctness fixes. Most importantly, fixes the circular dependencies
between some of the outward facing tools like type lookups and existence and
the inner workings of normalization. Introduces a set of _raw_* utilities to
the virtual filesystem to accomodate the distinction between internal tools and
externally facing functionality. Also adds a utility function for doing
transitively closed lookups on dictionaries, which makes the symlink handling
in general work much better.