Make parsing of uri and body parameters consistent with single term vector api

uri parameters were not all parsed for the multi term vector request. This commit
makes sure that all parameters are parsed and used when creating the requests for the
multi term vector request.

In order to simplify both code and json request, the request structure now allows
two ways to use multi term vectors:

1. Give all parameters for each document requested in the docs array like this:

```
{
   "docs": [
      {
         "_index": "testidx",
         "_type": "test",
         "_id": "2",
         "terms": [
            "fox"
         ],
         "term_statistics": true
      },
      {
         "_index": "testidx",
         "_type": "test",
         "_id": "1",
         "terms": [
            "quick",
            "brown"
         ],
         "term_statistics": false
      }
   ]
}
```

2. Define a list of ids and give parameters in a separate parameters object like this:

```
{
   "ids": [
      "1",
      "2"
   ],
   "parameters": {
      "_index": "testidx",
      "_type": "test",
      "terms": [
         "brown"
      ]
   }
}
```

uri parameters are global parameters that are set for both cases. They are overwritten
by parameter definitions in the body.

Also, this commit adds the missing setParent(..) and setPreference(..) to TermVectorRequestBuilder.
[DOC] add doc for multi term vector api

closes #3998
Fix issue 3989

Multi term vector request never returned if shards for all requested documents
were non existent.

closes #3989
Include facets in the rest response.
Only print the warning about '.' in type, when it is not a percolator type.
[Docs] Added _source filtering to documentation

Relates to #3301
Fixing CompletionFieldMapper.isReservedChar() to take all relevant chars in account
Cat API: Add h parameter to apis, allowing to return columns and descriptions for them
closes #4262
Add hole character to the reverved characters for completion suggester
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