Add index.data_path setting

This allows specifying the path an index will be at.

`index.data_path` is specified in the settings when creating an index,
and can not be dynamically changed.

An example request would look like:

POST /myindex
{
  "settings": {
    "number_of_shards": 2,
    "data_path": "/tmp/myindex"
  }
}

And would put data in /tmp/myindex/0/index/0 and /tmp/myindex/0/index/1

Since this can be used to write data to arbitrary locations on disk, it
requires enabling the `node.enable_custom_paths` setting in
elasticsearch.yml on all nodes.

Relates to #8976

Conflicts:
	src/main/java/org/elasticsearch/cluster/metadata/IndexMetaData.java
	src/main/java/org/elasticsearch/env/NodeEnvironment.java
	src/main/java/org/elasticsearch/gateway/Gateway.java
	src/main/java/org/elasticsearch/gateway/GatewayShardsState.java
	src/main/java/org/elasticsearch/gateway/local/state/meta/LocalGatewayMetaState.java
	src/main/java/org/elasticsearch/gateway/local/state/meta/MetaDataStateFormat.java
	src/main/java/org/elasticsearch/index/store/IndexStore.java
	src/main/java/org/elasticsearch/index/store/support/AbstractIndexStore.java
	src/main/java/org/elasticsearch/index/translog/fs/FsTranslog.java
	src/test/java/org/elasticsearch/env/NodeEnvironmentTests.java
	src/test/java/org/elasticsearch/gateway/GatewayShardStateTests.java
	src/test/java/org/elasticsearch/test/ElasticsearchIntegrationTest.java