Support experimental contacts API

`PUT` is supposed to replace the object. The server implementation uses `contact_store.update_contact()` which sets the provided fields on the contact object but leaves all the other fields as they are.