Fixed running tests in architecture.service-provider.asd

* architecture.service-provider.asd (header): updated copyright
  (perform test-op eql :architecture.service-provider-test): use
  `read-from-string' and `funcall' instead of `uiop:symbol-call'
Added {update,add,remove}-provider in src/{protocol,mixins}.lisp

The new generic functions

  {update,add,remove}-provider service name provider

are called when providers are updated, added or removed.

* src/protocol.lisp (update-provider): new generic function; called when
  a provider is redefined in a service
  (add-provider): new generic function; called when a provider is added
  to a service
  (remove-provider): new generic function; called when provider is
  removed from a service
* src/mixins.lisp (define-setf-find-provider): call
  `%add-or-update-provider'
  (update-provider provider-list-mixin t t): new method; replace the
  provider object stored for specified name
  (add-provider provider-list-mixin t t): new method; store the provider
  object under the specified name
  (remove-provider provider-list-mixin t t): new method; remove the
  provider object stored under the specified name
  (%add-or-update-provider): new function; call `update-provider' or
  `add-provider' depending on whether the provider has already been
  registered
  (%remove-provider): call `remove-provider' but still handle the error
  behavior
* src/package.lisp (package service-provider): added exported symbols
  update-provider, add-provider and remove-provider
Support update, add, remove hooks in service in src/hooks.lisp

This adds a hook to services (obtainable via the new generic function
`service-change-hook') that runs handlers with the lambda-list

  (EVENT NAME PROVIDER)

where EVENT is :provider-{updated,added,removed} and PROVIDER and NAME
are the provider and its name.

* src/hooks.lisp: new file; contains `service-change-hook' generic
  function and `change-hook-mixin' mixin class
* test/hooks.lisp: new file; contains hooks.smoke test
* test/package.lisp (package service-provider.test): added used packages
  alexandria and let-plus
* architecture.service-provider-and-hooks.asd: new file; contains system
  architecture.service-provider-and-hooks and
  architecture.service-provider-and-hooks-test