Support for indexed templates and scripts.

This change allows indexed templates and scripts to be loaded at query time.
Indexed queries and scripts are not cached and must be indexed in a .scripts index.
Templates can be referenced by :
GET /_search/template
{
  "id": "some_template"
}
This change also extends the template and scripts to accept file based scripts as
GET /_search/template
{
  "file": "some_template"
}
and
GET /_search
{
  "script_fields": {
   "inline_script": {
      "script": "return 'foo'"
    },
    "indexed_script": {
      "lang": "mvel",     # uses "mvel" as the _type
      "id": "hello_world"
    },
    "script_in_file": {
      "lang": "mvel",
      "file": "hello_world"  # or "hello_world.mvel"
    }
  }
}

See #5921