Rewrite ANF normalizer

Now uses destination-passing style and a new theory of contexts.  It has
many more opportunities to raise warnings in bizarre cases and no longer
generates quite so much cruft as before.
Tweaks to the planner

Mostly cosmetic changes, but of note:
  The planner now uses the alias-tracking contexts for mode analysis (though
    it does not actually yet do anything with this power; this change is in
    preparation for backward-chaining)
  DOpAMine unifications are now tagged with determinisim information, again
    in preparation for future work; these are all currently set to DetNon.
  DOpAMine and Python OPEmit printout is much more vertically compact.