Make evaluator a separate file.
Add new functions to evaluator.
Clean up infer-tests.
Small style changes and removal of dead code.

Also adds a test to contract tests.
Removal of define-go.
Remove unecessary lambda wrapper around test suites.
Make typechecking do the standard inits.
Make special env typecheck tests not run the code at module initialization.
Making test suite files all meet a standard interface.

All test suite files now export one identifier with the name 'tests'.
This allows for them to be treated the same across the test
infrastructure.
Make test files have mains that run the test case defined in them.
Make expanded syntax visible in test failures to aid debugging.
Make parse type and type annotation tests run at the right phase.