Expand fields in facet results

This adds a FieldPresenter class, which behaves similarly to the
existing code in ResultPresenter in the way it expands field values, but
is parameterised by field name instead of being hardcoded for several
fields.

Unfortunately, the existing "registries" hash which is used by
ResultPresenter is not keyed by field name, or even by something which
can be programatically converted to field name (some of the keys are
pluralised differently to the corresponding field names), so we pass a
second hash of registries which are actually keyed by field name from
the app through to the UnifiedSearchPresenter for use by the
FieldPresenter.

A later commit could update ResultPresenter to use FieldPresenter, and
remove the old registry hash.