cleaning
correct check for infix
fixing reader "this" case #301
Stack traces when testing
Infix macros should work along side custom operators
Tweak test that no longer works.
Split out infix tests. Add some tests.
Infix macros should work along side unary operators
Step with infix macro result
Merge branch 'pr/302'

Conflicts:
	src/expander.js
build
Remove function binding for a nice perf boost
Refactor term trees and reflection

Term trees now have everything autogenerated using macros. Using boolean
tags instead of `hasPrototype`, along with function constructors instead
of `Object.create` results in a nice little speed boost.
Only resolve when absolutely necessary

Many calls to `resolve` are not necessary. Most of the time we only want
to resolve when something is a macro, but if there's no possibility of
it being a macro, we can avoid an expensive call to resolve.

This PR adds an additional map to the env that stores unresolved names
of the things in the env. That way, we can check if it *might* be
a macro, and only then call `resolve`.
Micro optimizations for some hot functions