Added AVL tree implementation to moorings, based tree-set on top of it
Adding oracle-style tests for sets
Improved set tests
Semi-working dfas, nfas, regexps, packrat parsers, and earley parsers
Merge branch 'tree-sets' of git://github.com/ejcaruso/pyret-lang into ejcaruso-tree-sets
trying to pull out sets into another library, hitting cyclic problems

This commit may get reverted
mostly working, but broken by a separate issue of generative constructors
trying to use placeholders for list/set instantiation
Removing mk-structural-list, and instead exposing mk-link and mk-empty
as placeholder values that are set by moorings.arr
leftover files from wrong branch
Merge branch 'master' of github.com:brownplt/pyret-lang into ejcaruso-tree-sets
Move sets into a separate library

Giving up on:

- .to-set() shared method on lists
- list.to-set() on the list object

These required mutual dependencies between moorings and other libraries, which
are tricky and we don't have a great solution for.

sets are still available in the core language, but to convert to a list you
need to do more explicit calls into the set library
Merge branch 'master' into no-structural-list
whitespace
well-formedness for using _ as a name in cases expressions
adding currying for receiver objects, so that _.method(_, _, _)
properly curries over its leftmost underscore.
allowing "_" as an annotation synonymous with (a-blank)
checking for duplicate variant names (datatype variant names are
already checked)
missing arguments; fixing bug
checking for duplicate field and method names on data declarations