Fix mapping creation on bulk request

When a bulk request triggers an index creation a mapping might not be
created. The reason is that when indexing documents in a bulk,
an indexing operation might fail due to a shard not yet being
started. The mapping service, however, might already
have the mapping but the mapping update is never issued to the master,
even on subsequent indexing of documents.

Instead, the mapping must be propagated to master even if the
indexing fails due to a shard not being started.

closes #5623
Remove ScriptDocValues.EMPTY.

Instead the default implementation is used, but on top of empty
(Bytes|Long|Double|GeoPoint)Values. This makes sure there is no
inconsistency between documents depending on whether other documents in the
segment have values or not.

Close #5646
[TEST] Use NoMergePolicy rather than NoMergeScheduler in FreqTermsEnumTests
Document es.node.mode and add possible options to error message
Add `flush` method for BulkProcessor class

There is no explicit method `flush/execute` in `BulkProcessor` class. This can be useful in certain scenarios.
Currently it requires to close and create a new BulkProcessor if one wants an immediate flush.

Closes #5575.
Closes #5570.
Geo context suggester: Require precision in mapping

The default precision was way too exact and could lead people to
think that geo context suggestions are not working. This patch now
requires you to set the precision in the mapping, as elasticsearch itself
can never tell exactly, what the required precision for the users
suggestions are.

Closes #5621
Made template endpoint compatible with search endpoint

Before this the from/size parameters did not work.
Also updated the rest api spec definition file with all the query_string
parameters.

Fixes #5550
[DOCS] remove extraneous ` from cache page
Moved the decision to load p/c fielddata eagerly to a better place.

Closes #5569
Cleanup IndicesFieldDataCache and IndexFieldDataCache

This commit adds several asserts and removes possible `null` values
from the `FieldDataCache` implementation.

Closes #5664
[BUILD] Set -Dtests.jvms=auto by default to make use of multiple JVMs
[TEST] Make BulkTests#testBulkProcessorFlush more robust
sizeInBytes can be 0
[TEST] Make sure refresh is called by `indexRandom`, even if the list of documents to index is empty.
[TEST] Fix [Children|Parent]ConstantScoreQueryTests with nightly=true

Those tests use RandomIW which can flush after each document taking forever
to index the 20k docs it was indexing. This commit makes sure the IW is
sane and the number of docs is not too crazy.
[TEST] Reduce number of documents/terms in aggregations' RandomTests.

This test initially had three purposes:
 - duels between equivalent aggregations on significant amounts of data,
 - make sure that array growth works (when the number of buckets grows larger
   than the initial number o buckets),
 - make sure that page recycling works correctly.

Because of the last point, it needed large numbers of docs/terms since page
recycling only kicks in on arrays of more than 16KB. However, since then, we
added a MockPageCacheRecycler to track allocation/release of BigArrays and make
sure that all arrays get released, so we can now lower these numbers of docs/
terms to just make sure that array growth is triggered.
Take stream position into account when calculating remaining length

Currently `PagedBytesReferenceStreamInput#read(byte[],int,int)` ignores
the current pos and that causes to read past EOF

Closes #5667
[TEST] build index up-front to prevent relocations
[TEST] Harden GeoShapeIntegrationTests.
`geo_point` doesn't allow null values

After upgrading to 1.1.0, sending null values to geo points produces the following error:

```
MapperParsingException[failed to parse]; nested: ElasticsearchParseException[geo_point expected];
```

Closes #5680.
Closes #5681.