Upgrade to Lucene 4.2
Add tests for highlighting boost query.

Closes #1314
Fix tests since Lucene 4.2 we can support date math in Fuzzy-Search Syntax
add test that ensures that we bumb the version on a Lucene Upgrade
enable testcase that relied on a Lucene 4.2 fix
Fixed a typo in an error message "should exists" -> "should exist"
Introdue ParentIdCollector that collects only if the parent ID is non null ie. if the document has a parent.

Closes #2744
fix test bug where a small time window exists that can trigger a false failure due to default concurrent recoveries
add missing license header
Add dynamic settings validation

Fixes #2749
no need for specific time / empty based classes, just as final fields
force close connection if its on a connect failure
relates to Repeated ConnectExceptions in logs until node is restarted, fixes #2766
support also mode in search sorting, and fail on illegal parameters
Add s3-publishing script.
Revert "Add s3-publishing script."

This reverts commit 98f06c9af61e7ed6d2ebf7c10dab20c9a85f09ab.
tieBreaker in MultiMatchQueryBuilder should be a float, not an integer

Closes #2772
Use numOrds rather than numDocs as upperbound for sorting

Closes #2773
GeoJSONShapeParser parses JSON correctly and extracts coordinates even if 'crs' field is included.

Fixes #2763
avoiding NPE in Sigar FS
# REST Suggester API
The REST Suggester API binds the 'Suggest API' to the REST Layer directly. Hence there is no need to touch the query layer for requesting suggestions.
This API extracts the Phrase Suggester API and makes 'suggestion request' top-level objects in suggestion requests. The complete API can be found in the
underlying ["Suggest Feature API"](http://www.elasticsearch.org/guide/reference/api/search/suggest.html).

# API Example
The following examples show how Suggest Actions work on the REST layer. According to this a simple request and its response will be shown.

## Suggestion Request
```json
curl -XPOST 'localhost:9200/_suggest?pretty=true' -d '{
    "text" : "Xor the Got-Jewel",
    "simple_phrase" : {
        "phrase" : {
            "analyzer" : "bigram",
            "field" : "bigram",
            "size" : 1,
            "real_word_error_likelihood" : 0.95,
            "max_errors" : 0.5,
            "gram_size" : 2
        }
    }
}'
```
This example shows how to query a suggestion for the global text 'Xor the Got-Jewel'. A 'simple phrase' suggestion is requested and
a 'direct generator' is configured to generate the candidates.

## Suggestion Response
On success the request above will reply with a response like the following:
```json
{
    "simple_phrase" : [ {
        "text" : "Xor the Got-Jewel",
        "offset" : 0,
        "length" : 17,
        "options" : [ {
            "text" : "xorr the the got got jewel",
            "score" : 3.5283546E-4
        } ]
    } ]
}
```
The 'suggest'-response contains a single 'simple phrase' which contains an 'option' in turn. This option represents a suggestion of the
queried text. It contains the corrected text and a score indicating the probability of this option to be meant.

Closes #2774