Changing a-if to be ALettable, and changing the compilation of them
accordingly, so that we don't have to allocate lambda helpers for the
continuation after an if expression.
no more ast-split
remove unused anf.arr forms
eliminating dummy assignments to variables for sequencing
partially working implementation of s-cases via switch instead of helpers.   some switch cases aren't being emitted, or labels are being produced incorrectly, so overall this doesn't produce a working bootstrap yet.
bootstrap from previous, manually created interim state, and changes to compile cases correctly.
new bootstrap with cases compilation
Merge branch 'master' into no-helper-funs

Conflicts:
	src/arr/compiler/desugar.arr
new bootstrap after merge
distinguishing between singletons and nullary constructors in cases expressions
making pattern locations more precise in AST, for use in error messages
new bootstrap with better locations on cases arity/singleton errors
wrong location used in the stack when reporting errors
Don't allow expressions for field names in objects.

Previously, code of the following form was legal in the grammar:

  { ["he" + "llo"] : 5 }

This commit changes this, so that it is now illegal. This is the first
step towards changing the AST to not use the Expr type in Member, and
instead use something like String or Name.

Note that strings are now allowed in the field name position. For
example:

  { "5" : 5 }

This may not stay, since the only way to access such fields is by
converting them into a string dictionary (see to-dict() in string-dict).
Use String instead of Expr for field names.

Now that it is impossible to enter an expression for a field name, we
can safely switch over using Expr to String in the AST.
Clean up doc generator to work with new AST.
Merge commit '6415f22a9ea3b7420e467803139244896720e336' into no-helper-funs

Conflicts:
	build/phase0/pyret.js

The compiler has been bootstrapped to disallow expressions as field
names.
Merge remote-tracking branch 'origin/master' into no-helper-funs

Conflicts:
	src/arr/compiler/desugar.arr

Rebootstrap so the compiler only uses Strings to represent field names.
Add s-exp built-in library for parsing s-expressions

- Add new string-isnumber function for testing if a string can
  be converted to a number
- Require s-expression library from npm as a dependency
- Tests and runtime function for reading s-exps
explicitly instantiate all the trove modules ahead of time