Tests for phrase/{2,3}
Tell Komodo IDE to use tabs
Validate errors  when following choicepoints

It's expected behavior to receive an error when following some choice
points.  We used to treat all errors as expected, but that's likely to
hide truly unexpected errors.  Now we have an explicit list of
expected errors.  On all others, we panic.
Add some more debugging statements
Print anonymous variables with full ID

This lets the user know which variables are the same and which are
different.  Of course, anonymous variables should always be different
but some bugs manifest by accidentally creating anonymous variables
that share.
Factor out some common functions

These helper functions are useful across packages and should be
accessible that way to avoid code duplication.
Fix unification bug with anonymous variables

Anonymous variables shouldn't share with any other variable, but they
were.  The problem was that renaming variables in a term caused all
anonymous variables to share with each other instead of creating new
anonymous variables for each one.

I suspect that I could substantially simplify the code surrounding
anonymous variables and reduce the likelihood of bugs by making a new
term.Term implementation Void which represents an anonymous variable.
Unification with them always succeeds and there's no need to rename
them during variable renaming.  There's also no reason to store their
bound values in the environment since that value can never be
referenced again.
go fmt ./...