Expand specialist document metadata from schema

When requesting extra fields such as case_type, we want to look up the label in the schema. This commit does that by passing around the index mappings, getting the extra fields and looking them up in the relevant schema. `allowed_return_fields` now returns the array `ALLOWED_RETURN_FIELDS` and the ones in the schema.
Sorry, you're right. I was getting mixed up with all the other classes defined in here and accidentally defined stuff twice in a few places. I'll remove them now.