Issue10: Support for removed alternate Tokens, better logging on UnsupportedTokenExceptions, more unit tests, use QueryAnalyzer for Tagging

### PhraseBuilder:

* the PhraseBuilder now supports cases where Tokens where removed from the TokenStream (e.g. by a StopWordFilter). In such cases the PhraseBuilder needs to append tokens to phrases at earlier positions.
* Removal can make it necessary to create a branch for Tokens with posInc > 0 (see case (1) documentation in the PhraseBuilder#append(..) method.
* removal of Tokens may make it necessary to create new phrases instead of branches (e.g. if the first Token of a branch was removed). Added the according check to PhraseBuilder#branch(..)
* added unit tests for all those cases
* added hints for two possible origins for UnsupportedTokenExceptions (thrown if the PhraseBuilder is unable to generate Phrases from the TokenStream).
    1. can be caused by a combination of WordDelimiterFilter with a SynonymFilter
    2. the use of the WordDelimiterFilter after a filter that changes terms so that the length of the term does no longer match the length of the offset. In such cases the WordDelimiterFilter does not modify offsets what makes it impossible to generate correct Phrases.

### Tagger

Without proper posInc and posLen values it is very hard to determine "a phrase" to lookup in the FST. Filters that generate alternate tokens will make it hard to decide what Tokens to lookup in the FST. Multiple lookups of alternate tokens would require a lot of refactoring as each lookup currently also advances the Tags.

To avoid lookups for overlapping Tokens the Tagger now ignores all Tokens with a `posInc < 0` as well as Tokens that do overlap with an offset that was already looked up. This seams to be the best solution correctly detect multi word entities where one of the first tokens does generate alternate tokens in the token stream (e.g. "Wi-Fi network" an an Analyzer configuration including the WordDelimiterFilter).

However this can not completely rule out that the Tagger might miss some Entities for some Analyzer configurations. However this is not (only) a problem of the Tagger, but affects all Solr searches as nicely explained in the limitation section of [this Blog Post](http://blog.mikemccandless.com/2012/04/lucenes-tokenstreams-are-actually.html).

### TaggerRequestHandler

As Tagging is doing similar things as SolrQueries it now uses the QueryAnalyzer. This allows users to provide Analyzer configurations especially targeted for Tagging. A typical example would be to deactivate "catenate*" and "preserveOriginal" for the WordDelimiterFilter.

Such a configuration is now also used by  "/tag2" as used by the PosIncPosLenTaggerTest.