Fixed file-based template loading via config/templates

When parsing the json file, the first field is ignored as
parser.nextToken() seems to be called too often.

Closes #4235
Cleanup Rescorer Tests & add random indexing
Added support for shard_size in terms agg

Closes #4242
Cleanup of IndexFieldDataService.getForField.

This method has 2 signatures and one of them is dangerous since it allows to
discard fielddata configuration of the field mapper. This commit changes the
percolator so that it uses fielddata configuration of the _id field mapper
instead of forcing the paged_bytes format.

Closes #4270
Fix assertions in testEquivalence and beef up the test
Catch AlreadClosedException in RobinSearcher#release()

When we relocate a shard we might still have pending SearchContext
instances hanging around that will be used in "in-flight" searches
on the already relocated shard. This is a valid operation but if
we have already closed the underlying directory which happens during
cleanup concurrently the close call on the IndexReader can trigger
an AlreadyClosedException when the NRT reader tries to cleanup files
via the IndexWriter.

Closes #4273
[DOCS] Documented rest.action.multi.allow_explicit_index
[DOCS] Fixed a bad link
Fix test bug: we need at least one parent to have 1 child or more.
Update to shade plugin 2.2 to shade test artifact as well

When we want to use test artifact in other projects, dependencies
are not shaded as for core artifact.

Issue opened in maven shade project: [MSHADE-158](http://jira.codehaus.org/browse/MSHADE-158)

When using it in other projects, you basically need to change your `pom.xml` file:

```xml
<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>${elasticsearch.version}</version>
    <type>test-jar</type>
    <scope>test</scope>
</dependency>
```

You can also define some properties:

```xml
<properties>
    <tests.jvms>1</tests.jvms>
    <tests.shuffle>true</tests.shuffle>
    <tests.output>onerror</tests.output>
    <tests.client.ratio></tests.client.ratio>
    <es.logger.level>INFO</es.logger.level>
</properties>
```

Closes #4266
Remove randomizedtesting-runner explicit dependency
Was added by mistake with #4266
Add more logging to recent aggregations failures.
Made hole character in XAnalyzingSuggester part of Postingsformat

* Hole charactor now can change with new releases
* Fixed bug where the SEP_LABEL constant was used instead of the sepLabel instance variable
* Replaced if- with switch-statement
Use FilterDirectory from lucene instead of maintaining a copy

FilterDirectory has been ported to Lucene in LUCENE-5204 which makes
the class in elasticsearch obsolet. This commit removes the class and
moves the static utils that are not in lucene to `DirectoryUtils`
Upgrade Maven Assembly Plugin to 2.4

Closes #4278.
Upgrade Maven Compiler Plugin to 3.1

Closes #4279.
Upgrade Maven Dependency Plugin to 2.8

Closes #4274.
Upgrade Maven Eclipse Plugin to 2.9

Closes #4277.
Upgrade Maven Jar Plugin to 2.4

Closes #4281.
Upgrade Maven Resources Plugin to 2.6

Closes #4280.