AcePrinter now displays types and heapenvs!

- moving type_env and heap_env types to Lang
- stuffing type/heapenv info in exp and stmt records so that
  AcePrinter can print mouseover tooltips
- added TPlaceholder as dummy types which get replaced during type
  checking and translation
- okE and okS are helpers that stuff synthesized type/heapenv into the
  rewritten expressions/statements, with very little change to existing
  type checking code
- AcePrinter displays tooltips with types and heap environments in lots of
  useful places. to get around some issues with the Ace/JS tokenizer
  (haven't tried playing with this yet):
  . inserting extra space before ";"
  . inserinng extra space before "," in lists
  . using bracket notation everywhere instead of "." notation