initial commit of the aggregations module

Closes #3300
force default codec
reduce p/c searches and num child docs being generated
added a waitForGreen condition for the unmapped tests on missing agg
Upgrade to Lucene 4.6

This commit upgrades to Lucene 4.6 and contains the following improvements:

 * Remove XIndexWriter in favor of the fixed IndexWriter
 * Removes patched XLuceneConstantScoreQuery
 * Now uses Lucene passage formatters contributed from Elasticsearch in PostingsHighlighter
 * Upgrades to Lucene46 Codec from Lucene45 Codec
 * Fixes problem in CommonTermsQueryParser where close was never called.

Closes #4241
Local primaries should be preferred to relocating primaries

To reproduce the bug use -Dtests.seed=5AB62524C9AB0489
Fixes #4237
iterator doesn't implement #remove()
acquireSearcher should fail with state failure when not set/closed
also fixes #4232
acquireSearcher should fail with state failure when not set/closed
also fixes #4232
Bulk should support shard timeout like the index api
closes #4220
Updated Analyzing/Fuzzysuggester from lucene trunk

* Minor alignments (like setter to ctor)
* FuzzySuggester has a unicode aware flag, which is not exposed in the fuzzy completion request parameters
* Made XAnalyzingSuggester flags (PAYLOAD_SEP, END_BYTE, SEP_LABEL) to be written into the postings format, so we can retain backwards compatibility
* The above change also implies, that these flags can be set per instantiated XAnalyzingSuggester
* CompletionPostingsFormatTest now uses a randomProvider for writing data to check for bwc