Add support for querying / managing contact fields

This is an API addition, so should only be applied to master (to delineate features).