Remove FST.Builder.FreezeTail interface

Details

Description

The FST Builder has a crazy-hairy interface called FreezeTail, which is only
used by BlockTreeTermsWriter to find appropriate prefixes
(i.e. containing enough terms or sub-blocks) to write term blocks.

But this is really a silly abuse ... it's cleaner and likely
faster/less GC for BTTW to compute this itself just by tracking the
term ordinal where each prefix started in the pending terms/blocks. The
code is also insanely hairy, and this is at least a baby step to try
to make it a bit simpler.

This also makes it very hard to experiment with different formats at
write-time because you have to get your new formats working through
this strange FreezeTail.