Added third highlighter type based on lucene postings highlighter

Requires field index_options set to "offsets" in order to store positions and offsets in the postings list.
Considerably faster than the plain highlighter since it doesn't require to reanalyze the text to be highlighted: the larger the documents the better the performance gain should be.
Requires less disk space than term_vectors, needed for the fast_vector_highlighter.
Returns better snippets since it uses a BreakIterator to find sentences in the text.
Treats the document as the whole corpus, and scores individual sentences as if they were documents in this corpus, usingthe  BM25 algorithm.

Uses forked version of lucene postings highlighter to support:
- per value discrete highlighting for fields that have multiple values, needed when number_of_fragments=0 since we want to return a snippet per value
- manually passing in query terms to avoid calling extract terms multiple times when using a different instance per doc/field (the "per doc" usage is required by the discrete per value highlighting customization)

Supports pre_tag, post_tag, number_of_fragments (0 highlights the whole field), require_field_match, order by score and and html encoding.