Given that sk/pk/k are now hardcoded, we can exploit their occurrences with this
new heuristic.
The heuristic can now scan for the lowest term depth at which either sk or k occur.
This will cause the heuristic to favor looking for sk, then sk(x), and only later
other terms. In a small test this was twice as fast. For protocols based on pk only
the performance loss should be negligible.
The old heuristic was 162, now it is 162+512 = 674.
implicitly, older goals are resolved first, if some goals have equal
weights. This is encoded in the "w <=" comparison; if this is set to
"w <", the heuristic becomes much less effective.
Preliminary results:
1. For typed matching, either heuristic 32 or 34 are best, and far
superior to the previous best (3).
2. For untyped matching, partial tests indicate that heuristic 1 is
best, which is rather interesting.