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.