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