Fix loading templates in config/ directory

The fixes introduced in #4235 and #4411 do not take into account, that a
template JSON in the config/ directory includes a template name, as opposed
when calling the Put Template API.

This PR allows to put both formats (either specifying a template name or not)
into files. However you template name/id may not be one of the template
element names like "template", "settings", "order" or "mapping".

Closes #4511
Add smoketest support for published packages

the build_release.py tool now also downloads and verfyfies the
released packages from S3. It checks integrity based on the sha1
checksums and runs the smoketest against the specs in the current branch.
Disable SegmentReader ram usage by default even if -ea is provided
Make doc lookup in geo_shape filter and query consistent with terms lookup.

The `geo_shape filter and query` option in geo_shape filter and query has been replaced with the `path` option, which allows these filter and query to fetch shapes from within objects as well.

Closes #4486
[DOCS] Changed `shape_field_name` to `path` in geo_shape filter documentation.

Relates to #4486
Added v0.90.9
Release parentDocs in TopChildrenQuery.
Fixed named filter and query support for the top_children, has_child and has_parent queries and filters.

Closes #4534
Release SearchContext releaseables also post match filters / queries.
update to netty 3.9.0
- currently we make a few assumptions in the field data based aggregations base on which we decide on execution paths, e.g. initial buffer sizes we use for ordinal arrays.

- also, in geo distance, because it's based on range agg and that by default the order of the geo point per doc is unknown, always wrap it in a dedicated field data source which sorts the values if needed. But most of the times, a doc will be associated with a single point and therefore most of this wrapping is redundant and adds perf. cost for nothing.

- the idea here is for every request that "hits" a field data agg, we'll first iterate over the searchable segments and load their field data and compute the cross-segment info out of them. This info will be placed in the field context with which the value sources are created.

- we currently have some of this info on the IndexFieldData, but problem with getting it from there is that we may easily end up getting wrong info that originate in unsearchable segments.
Add table concatenation.
Add associative lookup of columns for arbitrary (and more intuitive) ordering.

  % curl 'localhost:9200/_cat/nodes?v&headers=jdk,ip,name'
  jdk      ip        name
  1.7.0_40 127.0.0.1 Mordo, Karl

Closes #4433.
Turn off some columns by default in cat/nodes.
Round load avg in _cat/nodes.
Add column separator for help output.
[DOCS] Add headers and help parameters.
clear the list of releases once released
also double check that once a recycler is released, it can't be released again or used
Removed bashism in bin/elasticsearch

Using == in an if-statement works in bash but not in dash (used in ubuntu)
Replacing == with = results in strictl POSIX compliance.
Need to make sure we always end up with a Cell, even if it's null.

Fixes #4544.