Cut the following classes over to ImmutableOpenMap:
* MetaData
* IndexMetaData
* ClusterState
* IndexTemplateMetaData
Small cleanup
Added execution option to `range` filter, with the `index` and `fielddata` as values.
Deprecated `numeric_range` filter in favor for the `range` filter with `fielddata` as execution.

Closes #4034
Support index aliases in index templates.

Aliases can be specified in index templates from config and via the API.
Support ${index} token in index template aliases - When updating index creation metadata from a template, check the alias name for an ${index} token and replace it with the name of the index to which it is being applied. This makes it easy to apply rolling dated aliases in line with schemes like that used by logstash, e.g. allowing for an alias called myalias-logstash-2013.09.05 where the alias string is "myalias-${index}" and the index name is logstash-2013.09.05.
Changes for code review - WIP
Fixing and adding alias tests