Preliminary version of type-directed search
Merge remote-tracking branch 'upstream/master' into typeSearch
Now we can handle typeclasses!

Note: The method by which we match typeclasses is ugly and brittle,
and ought to be changed eventually.
Unify more things!

If two solutions arrive at more or less the same time (e.g. part of the
same application) but are not identical, we need to unify them before
propagating solutions.
Merge pull request #1263 from bmsherman/typeSearch

Add type-directed search functionality (like Hoogle)