Improve path simplification
Improve path simplification

There are still a few issues.  In particular, each path component
needs to be tagged with its type.  Unfortunately, due to bitcasts,
this may need to be done at path creation time (when these casts
are available).

travitch/foreign-inference,travitch/foreign-inference