Don't fail highlighting if the field to highlight is missing.

PlainHighlighter fails at highlighting with a hard exception in case the field
to highlight is missing. This patch fixes this issue by
 - making FieldsVisitor.fields() return an empty list instead of null when no
   stored field was found,
 - replacing the fields to highlight with an empty list in case they are absent.

Closes: #3109