Remove GET `_aliases` api in favour for GET `_alias` api

Currently there are two get aliases apis that both have the same functionality, but have a different response structure. The reason for having 2 apis is historic.

The GET _alias api was added in 0.90.x and is more efficient since it only sends the needed alias data from the cluster state between the master node and the node that received the request. In the GET _aliases api the complete cluster state is send to the node that received the request and then the right information is filtered out and send back to the client.

The GET _aliases api should be removed in favour for the alias api

Closes to #4539
remove double check for null in value source
Term Vector settings should be treated like flags without propergation

today if a specific feature is disabled for term vectors with something
like 'store_term_vector_positions = false' term vectors might be disabeled
alltogether even if 'store_term_vectors=true' in the mapping. This depends on the
order of the values in the mapping since the more specific one might override
the less specific on.

Closes #4582
Simulate the entire toXContent instead of special caseing

Today we try to detect if we need to generate the mapping or not in
the all mapper. This is error prone since it misses conditions if not
explicitly added. We should rather similate the generation instead.

This commit also adds a random test to check if the settings
of the all field mapper are correctly applied.

Closes #4579
Closes #4581
s/similariry/similarity in AllFieldMapper
[TEST] Split delete by query tests pre-1.0 and post-1.0

See #4074 for details
[TEST] split tests with parent to pre/post 1.0 in the yaml test suite

See #4506 for details
[TEST] add name parameter to get_alias in update_alias tests

to avoid failure on older es versions since get_alias without name has been
only introduced in #4539
In the spirit of the soon-to-be New Year 2014?
Add field data memory circuit breaker.

This adds the field data circuit breaker, which is used to estimate
the amount of memory required to load field data before loading it. It
then raises a CircuitBreakingException if the limit is exceeded.

It is configured with two parameters:

`indices.fielddata.cache.breaker.limit` - the maximum number of bytes
of field data to be loaded before circuit breaking. Defaults to
`indices.fielddata.cache.size` if set, unbounded otherwise.

`indices.fielddata.cache.breaker.overhead` - a contast for all field
data estimations to be multiplied with before aggregation. Defaults to
1.03.

Both settings can be configured dynamically using the cluster update
settings API.
support aliases for columns in cat API
use it as an example in nodes for now for some columns, though we need to go over all the columns and properly name them and alias them
Setup an accurate version of Haversine closes #4596
rename _shard -> _index and also rename classes and variables

closes #4584
Check if node is still present when collecting attribute shard routings

The node we need to lookup for attribute colelction might not be part
of the `DiscoveryNodes` anymore due to node failure or shutdown. This
commit adds a check and removes the shard from the iteration.

Closes #4589
Raise visibilty of `#types()` to public in request classes

`CountRequest` and `ValidateQueryRequest` have package
private accessors for `#types()` which is inconsitent with
other getters.
Fix transient settings assertions in ElasticsearchIntegrationTest

We missed to fail if transient settings were modifed in the test since we
compared against persistent settings.
Already loaded SimpleIdReaderCache should be reloaded when a new `_parent` has been introduced.

Closes #4595
Relates #4568
IdCache shouldn't implement Iterable
Fixed SimpleIdCache#clear() to not invoke onRemoval twice, which can happen in rare cases.
Add NodeVersionAllocationDecider that prevent allocations that require forward compatibility.

Today during restart scenarios it is possible that we recover from a node that
has already been upgraded to version N+1. The node that we relocate to is
on version N and might not be able to read the index format from the node
we relocate from. This causes `IndexFormatToNewException` during
recovery but only after recovery has finished which can cause large
load spikes during the upgrade period.

Closes #4588