Revert "Aliases: Throw exception if index is null when creating alias"

This reverts commit ee857bc07302b5bfcb327b3be9d07d9c6de28254.
Docs: Tidied the upgrade indices docs
Rest: Added missing parameters to indices.upgrade
Spec: Removed flush and max_num_segments from indices.upgrade
Docs: Add missing link to the 2.0 migration guide.
Tests: Add assumption to restrict upgrade test from running against
invalid backcompat versions.
Throw parsing exception if terms filter or query has more than one field

Closes #5014
Admin: Fix upgrade logic to work on lucene major version differences.

Also improved upgrade tests, and added test against static ES 0.20 index
which used Lucene 3.6.

closes #8013
Temporarily ignore 0.20 upgrade test until it can be made less flaky.
[TEST] Remove explicit network mode - not needed here
Logging: add shard id to logging in InternalIndexService.removeShard
Test: re-enable testUpgrade_0_20
[CORE] Simplify discovery node initialization if version is unknown

Today it's easy to use the wrong version when initializing DiscoveryNode
instances. This commit adds javadocs and a utility constant to
initialize DiscoveryNode instances if the the remotes node version is
unknown.

Closes #8051
Doc: Clarify that index.routing.allocation.total_shards_per_node means both primary and replica shards
Closes #8002
Clear the GroovyClassLoader cache before compiling

Since we don't use the cache, it's okay to clear it entirely if needed,
Elasticsearch maintains its own cache for compiled scripts.

Adds loader.clearCache() into a listener, the listener is called when a
script is removed from the Guava cache.

This also lowers the amount of cached scripts to 100, since 500 is
around the limit some users have run into before hitting an out of
memory error in permgem.

Fixes #7658
[CORE] Remove leftover unused constants