Added progress reporting in src/{conditions,macros}.lisp

* src/conditions.lisp (progress-condition-message): new generic
  function; return message of a progress condition or nil
  (progress-condition-message t); new method; default behavior of
  returning nil
  (progress-condition): new condition; signaled to indicate progress
  of an operation
  (progress-condition-message simple-progress-condition): new method;
  use the format control and arguments to produce a message
  (print-object progress-condition t): new method; print operation and
  progress info; print unreadably or just information
  (simple-progress-conditions): new condition; like
  `progress-condition' but use format control and format arguments to
  produce a description
  (print-object simple-progress-condition t): new method; maybe print
  message after operation and progress info
  (progress): new function; signal a progress condition; like
  `signal', `warn', etc. accept either format control and arguments or
  a condition class and initargs
  (print-progress-percentage): new function; utility function for
  printing progress as percentage
* src/macros.lisp (with-trivial-progress): new macro; signal one
  progress condition for the start and end of the execution of some
  code respectively
  (with-sequence-progress): new macro; signal one progress condition
  for the processing of each element of a sequence
* src/package.lisp (package more-conditions): added exported symbols
  progress-condition, progress-condition-operation,
  progress-condition-progress, progress-condition-message,
  simple-progress-condition, progress, with-trivial-progress and
  with-sequence-progress; extended documentation string
* test/conditions.lisp (define-condition-suite): support supplying a
  constructor name
  (define-condition-suite progress-condition): new test; test
  construction and printing of `progress-condition'
  (define-condition-suite simple-progress-condition): new test; test
  construction and printing of `simple-progress-condition'
* test/macros.lisp (test suite with-trivial-progress-root): new test
  suite; for `with-trivial-progress' macro
  (test with-trivial-progress-root::smoke): new test; smoke test for
  `with-trivial-progress' macro
  (test suite with-sequence-progress-root): new test suite; for
  `with-sequence-progress' macro
  (test with-sequence-progress-root::smoke): new test; smoke test for
  `with-sequence-progress' macro
* more-conditions.asd (+version-minor+): bumped version 3 -> 4
* README.org (Introduction): mention progress conditions
  (Tracking and Reporting Progress of Operations): new section;
  discuss progress conditions