Added profiling annotations.
Added some support for unboxed tuples.
Made Smten.Data.Array an instance of Functor.
Added missing case in andF.
Use per-formula assert traversal cache for NotFF.

Improves performance from 2s down to 1.5s on an application where
the assert traversal is the major bottleneck.
Switched all boolean formulas to perf-formula assert caches.

Performance degraded.

With just Not and And, it dropped to 1s for nqueens, but with all,
it popped back up to 1.5s.

I'll finish making the change completely, then try to understand what's slow
and see if it can't be improved.
Switched integer formulas to per-formula cache.
Switched bit formulas over to per-formula caches.
Cleaned up assert traversal.

Now that everything uses per-formula caches.
Cached variables in assert traversal.

Makes a significant difference in performance.
Updated performance numbers for new assert traversal.