Add a FrequencyCachingTermsEnum

Squash me later.

Instead of caching in termsenum add a TermsEnum interface that does it.
Rather than use BigArrays just use a ObjectLongMap for simplicity.
Leave the BigArrays stuff around for now to be cleaned later.

Note: this is a little bit slower then caching in the WordScorer.  Like,
takes the test from 300ms to 350ms.  This is still much better then the
five seconds it was before.  I'm not sure what is taking the time here.