Mappers: Better validation of mapping JSON

The parsers for the mappers now remove each setting as they parse it and an error will be thrown if any settings are left after parsing is complete

Closes #7205 
fielddata format can still contain arbitrary values:

```
PUT testidx
{
  "mappings": {
    "doc": {
      "properties": {
        "user": {
          "type": "string",
          "fielddata": {
            "format": "fst",
            "blah": "blub"
          }
        }
      }
    }
  }
}
```