More attempts at optimisation
- keep a set of confirmed QNB elements
- test_above_cached instead of test_above_simple
An optimisation attempt that doesn't seem to work.

Keep a set of heads we've seen thus far in test_semi_infinite.
test_above_cached is now called implicitly
Merge branch 'implicit'
Fix to previous optimisation