Sync with recent changes in foreign-inference

This matches up with
travitch/foreign-inference@eb6da2f0730d23a0cc7ff2c99191ea164ce1fdcb.

The main changes are in the dependency relations between the
output/allocator analyses.  This simplifies things a lot and we don't
need two phases anymore.