Adds a new coerce flag for numeric field mappings which is defaulted to true.
When set to false a new strict mode of parsing is employed which
a) does not permit numbers to be passed as JSON strings in quotes
b) rejects numbers with fractions that are passed to integer, short or long fields.

Closes #4117
Add a new FetchSubPhase, FieldDataFieldsFetchSubPhase
Parse `fielddata_fields` elements
Correctly return value from SubFetchPhase
Add field data service
Look up from context
Correctly retrieve field from fielddata cache