parsing annotations in JS; syntax of open arrows

- starting to parse ImpScript annotations in source-level JavaScript
- changed syntax of open arrows to {*x1:t1, ..., *xn:tn} => t -> t'
  any of the ti's can be omitted, in which case t->t' is inserted
- added Newline to LamJS JavaScript parser, so that they can be preserved
  in the resulting ImpScript
- infinite loop bug in strExp EAs
- allowing rely set to mention vars not yet defined, since don't want to
  do var lifting