Move ContactsController shared logic into a new concern for reusability

[Finishes #64804080]