Smarter unification hashing for MightUnify

When calculating whether two terms might unify, give the full term to
UnificationHash rather than a Univ list.  This lets UnificationHash
intelligently allocate bits for a compound terms such as reducing the
number of bits awarded to a functor.

Although this doesn't impact performance on any of our benchmarks, it
should help with deeply nested clause heads.  It was also the original
design intention.