Fixed a few bugs and added tests for HookableSaxParser.

Currently not used, but planned to be used for more flexible indexing
soon.
Enabled multiple content stores (one per complex field) in Indexer.

* When constructing the Indexer, don't pass the main contents field
name.
* In your DocIndexer class, pass the field name to the
startCaptureContent() method.

Also done:
* Hid some constants/static variables in ComplexFieldUtil behind
methods.
Fixed content store getting corrupted during indexing.
Removed old-style named entity stuff from DocIndexerPageXml
Improved how case- and diacritics-sensitive indexing and search works.

- Dealing with alternatives during indexing is much simpler: just
provide the desired SensitivitySetting and the appropriate alternatives
are automatically created. No messing around with anonymous
TokenFilterAdder classes anymore.
- TPTranslationContext renamed to QueryExecutionContext, because it's a
more relevant, conceptual description and it's also used while
generating collocations now.
- In the new naming scheme, there's no nameless main alternative
anymore; every alternative has a name. The most appropriate one is
selected using the QueryExecutionContext.
- ComplexFieldPropertyImplLargeDoc no longer keeps all its values across
documents, as that will consume a lot of memory on large datasets
indexed in one go.
- Fixed bug in IndexStructure that could cause detection of main
property to fail
- Searcher now has separate default settings for case- and
diacritics-sensitive search. Property must be indexed with
SensitivitySettings.CASE_AND_DIACRITICS_SEPARATE for this to be useful,
though.
- Added TextPattern toString() methods that take a Searcher and
properly use the default QueryExecutionContext.
- Added parameters "case" and "diac" to QueryTool command "sensitive" to
control case- and diacritics-sensitivity separately.
- Added DesensitizeFilter and DesensitizerAdder to simplify and optimize
alternative tokenstream filtering.