"Fix" safeExp.  This is a bit crazy.
Experimentally hoist almost anything past branches.
Fix type annotation when converting ScalExps to Exps.
Fix fold-first-order-transform bug.
Tweak hoistability a little more.
Add intelligent bounds check removal.

It works... pretty well, but it's hacky.