Added extended default reference protocol in src/{protocol,conditions}.lisp

This allows specifying default references using the :direct-references initarg
and accessing direct and inherited default references via
direct-default-references and default-references respectively.

* src/protocol.lisp (header):updated copyright
  (direct-default-references): new generic function; return list of
  direct default references; methods for symbol and class return default
  value of :direct-references initarg
  (default-references): new generic function; return list of all default
  references; methods for symbol and class return union of transitive
  direct default references
  (default-initarg-value): new function; helper function for determining
  the default value of an initarg
* src/conditions.lisp (reference-condition::references): allow value
  :compute; change initform to :compute; change accessor
  condition-references -> condition-%references
  (condition-reference reference-condition): new method; perform lazy
  computation of reference when references slot is :compute
  (shared-initialize :before reference-condition): new method; make
  direct-references a legal initarg
* src/package.lisp (package more-conditions): added exported symbols
  direct-default-references and default-references
* test/conditions.lisp (princ-to-string-with-special-bindings): new
  function; helper function for printing with bound special variables
  (define-condition-suite): added keyword parameter repeat to repeat
  printing of condition instance; added keyword parameters
  constructor-args and special-bindings to clauses; use
  `princ-to-string-with-special-bindings' to bind special variables
  (define-condition-suite missing-required-argument): adapted to changed
  macro
  (define-condition-suite initarg-error): likewise
  (define-condition-suite missing-required-initarg): likewise
  (define-condition-suite incompatible-initargs): likewise
  (define-condition-suite reference-error): likewise; added cases; test
  binding *print-references*; added comments
  (condition reference-condition.inheritance.super^2error): new
  condition class; for inheritance test
  (condition reference-condition.inheritance.supererror): likewise
  (condition reference-condition.inheritance.subererror): likewise
  (define-condition-suite reference-condition.inheritance.suberror): new
  test suite; test inheritance of default references
  (condition reference-condition.inheritance.supererror2): new condition
  class; for inheritance test
  (condition reference-condition.inheritance.subererror2): likewise
  (define-condition-suite reference-condition.inheritance.suberror2):
  new test suite; test inheritance of default references
  (test reference-condition.print/logical-block): added a second test case
  (define-condition-suite progress-condition): adapted to changed macro
* more-conditions.asd (+version-revision+): changed 3 -> 4
  (system more-conditions): added system dependency on closer-mop