Improved and extended tests in test/macros.lisp

* test/macros.lisp (header): updated copyright
  (test macros.define-service.smoke): check for identical class instead
  of subclass
  (test macros.define-service.redefinition): removed; split into two
  tests
  (test macros.define-service.redefinition.documentation): new test; was
  part of `macros.define-service.redefinition'
  (test macros.define-service.redefinition.redefinition): new test; was
  part of `macros.define-service.redefinition'; check for identical
  class instead of subclass
  (specialized-class-provider): renamed specialized-provider ->
  specialized-class-provider
  (test macros.register-provider/class.smoke): adapted to renamed class;
  check for identical class instead of subclass
  (test macros.register-provider/class.conditions): new test; test
  conditions signaled by `register-provider/class'
  (mock-provider): new function; used in test for
  `register-provider/function'
  (specialized-function-provider): new class; likewise
  (test macros.register-provider/function.smoke): new test; smoke test
  for `register-provider/function'
  (test macros.register-provider/function.conditions): new test; test
  conditions signaled by `register-provider/function