Use equality semantics for compiler tests

Closes #776.

This follows the spirit of #776, but not quite the letter. `assertCompilesTo` lives (named `assertCompileTo` since it takes a collection of things), but uses equality semantics. That still seemed like an entirely reasonable helper method to keep, so I kept it :)

Thanks, @radix!