Adding test requirements.
UDAs apparently cannot use underscores.  Whoops.
Raise a warning if a service declares a potentially-invalid UDA.
Cleaning up change detection to be more reliable.