Make things more strict.

With the exception of query operations, everything is now
spine-strict. This is a slightly more tricky invariant to
maintain than just making everything spine-strict, but I
think it's probably worth it, to cover the scenario where
a large structure with many indices is queried regularly,
with an extraction always immediately following the query.
In such a case, rebuilding the indices would be significant
extra work.