Improved default behaviors of generic functions in src/protocol.lisp

* src/protocol.lisp (find-option :around t t): use `tagbody' instead
  of a local recursive function
  (find-child :around t t): likewise
  (option-default :around t): likewise
  (validate-value :around t t): likewise
  (option-value :around t): likewise
* test/protocol.lisp (test validate-value.default-behavior): new test;
  test default behavior of `validate-value' generic function
* test/mixins.lisp (test find-option.smoke): added test case for
  `use-value' restart
* test/schema.lisp (test find-child.smoke): similar