[performance] get all extra metadata at once if possible

Doing multiple queries for this also meant multiple model updates, and multiple contact field parsing on the sqlite side.

This patch halves the time spent at 100% cpu for an app that requests all the search fields.