implement and document rules for repeated/combined DEFRULE options

I noticed that ``DEFRULE`` silently accepted combinations of e.g. ``(:text t)`` and ``(:function parse-integer)`` but only executed one of these transform. While the trivial solution would be to signal an error, it is more useful to compose the requested transformations, in my opinion.

Commit message:

```
implement and document rules for repeated/combined DEFRULE options

The :when DEFRULE options cannot be repeated (This had already been
implemented, but the documentation string did not explicitly state the
fact)

All DEFRULE options which specify transformations can now be repeated
and/or combined. The resulting transformation is the composition of
the supplied transformations in the specified order. Only the first
transformation can receive bounds via &BOUNDS.

Unit tests have been added.
```