Revised solution for TAP5-2331
Some minor refactorings to more pleasant service names

Also, only complain about a pre-selected client id if not ensuring uniqueness
Allow IncompatibleChange to be attached to fields as well as methods
A bit more refactoring, might as well get the name just right