Use error-behavior-restart-case in find-provider in src/protocol.lisp

* src/protocol.lisp (find-provider :around t t): use
  `error-behavior-restart-case' instead of manually handling
  the if-does-not-exist parameter
* test/protocol.lisp (test protocol.find-provider.conditions): new test;
  check `retry' and `use-value' restarts established by `find-provider'
Improved test protocol.find-service.restarts in test/protocol.lisp

* test/protocol.lisp (test protocol.find-service.restarts): check types
  of provided restarts; ensure the can be printed; use a service
  instance instead of a random object for testing the `use-value'
  restart