Port DSE to use shadows
Finish porting DSE
Port DIE, and split it out into its own file.

This commit also rewrites DIE to use a reverse-topological walk based on the BB ordering already known rather than using a queue system.
Vastly simplify Selective module since (a) it's not much use and (b) it would be lots of effort to port. Now we just redo the DIE/DSE phase in the wake of changes including the automatic pick.

This also saves a lot of memory remembering every dependency of every dead inst.

TODO: make sure the DSE and DIE paths respect disabled contexts, which they previously didn't expect to ever see.