Changed the TermFilter to return a native DocIdSetIterator instead of the FixedBitSet's implementation.

This has two advantages in the case term filter is cached:
 * We iterate only once over the matching docs. Before this fix we iterate once to create the FBS and another time the consume the matching docs from the FBS.
 * The DocIdSetIterator#cost method of a DocIdSetIterator from the DocsEnum is accurate, because it based on the document frequency whereas the cost method of the FBS' iterator impl is based on the total number of bits (which is based on maxDoc). This will make this filter execute faster when it is included in a filtered query.

 This change doesn't have any negative implications in the case a filter is cached (which is the default). The FBS is now created lazily in the DocIdSets#toCacheable method, which is always invoked when the term_filter needs to be cached.