parse-test also depends on these two files
Prevent - at end of identifiers, closing #222.
 - Add tests to warn on regression.
 - No regex constructions that aren't already in use are used in this fix.
   Hopefully this implies no new browser incompatibility.
Allow multiple hyphens in a row, and add more parse tests
Use Ben's regex
Merge pull request #223 from Ericson2314/master

Fix #222
Add all new tests that already pass with old tokenizer
Add space around caret / cannonball operator in src, tests, and doc utilities.
type instantiation now parses correctly. Here's why:
 - All symbolic operators require whitespace on both sides
   (+ - * / >= <= > < <> ==
    - Should "and" "or" "raises" and "satisfies" require that too?
 - type instantiation and friends no longer accept LT and GT
Most ops defined with new function `op`, English ops defined `kw`

newlines before and after operators, and betwen symbolic and infix ops
Caret is now an op, put with the other ops (moved over disjoint regexps)
Match trailing whitespace with more tokens (see table below)

              | check + match  | have
              | trailing space | `parenIsForExp` set
--------------+----------------+--------------------
`COMMA`       |                |        X
`THINARROW`   |                |
`THICKARROW`  |       X        |        X
`COLONCOLON`  |       X        |
`COLON`       |                |        X
`EQUALS`      |                |        X
`COLONEQUALS` |                |        X
s-instantiated now desugared by erasure in anf.arr
anf.arr as opposed to desugar.arr to support future type checking of it
Add tests to prevent parser tokenizer regressions

Also add missing semicolon after existing test
Merge pull request #227 from Ericson2314/parse-tests-and-cannonball-prep

Parse tests and cannonball prep
Some tokens are wider than GT and LT and thus need a separate cleanup
A few more tests for type function elimination (as opposed to forall elimination)
Merge pull request #228 from Ericson2314/tokenizer

Tokenizer changes needed to lex type-instantiation angle brackets separately from numeric comparison operators.  This revealed a bunch of other potential whitespace problems in lexing, which should now all be uniformly fixed.
Merge branch 'master' into no-helper-funs2

Conflicts:
	src/arr/compiler/anf-loop-compiler.arr
Fixing a very subtle bug, in which a stack-bounce that happens in the
middle of checking a record annotation will cause the
annotation-answer "ok" to be returned instead of the intended value.

Basically, because record annotations are not refinements, checkAnn
decided that they were safe to invoke in direct style.  But record
annotations internally use safeCall, which may well bounce the stack.
If so, the checkAnn stack frame will not be saved, and hence won't be
restored.  This fix is to force record annotations to be called via
safeCall, which ensures that this lost frame won't happen.  (An
alternate solution, but a technically trickier one, is to write a
version of record-annotation checking that does not use safeCall.  We
may revisit that idea if the performance of safeCall here truly
becomes an issue...)
Fixing the compilation of split-app, split-if and split-cases, where any annotations on the binding were being ignored.  This led to not checking the return annotation on function positions (because we simply compile the body of a function to a let expression whose binding uses the return annotation).