Extended policies by an `:init' code block, made code clearer, extended docs

Policies can now hold a code block called for initialization. The corresponding property field is labelled `:init'. The function inside must not return `nil' upon successful initialization. If `nil' is returned, a `policy-init-failed' condition is signalled and code execution is aborted (i.e. `body' or `:check' are never executed). Also, refined the way policies are created a bit (code-wise, it is now much more compact and more easily extendable). Also, extended the documentation and examples, and adapted them to the new feature.
Added support for description strings for policies

Policies can now be initialized with a description string. This can be done via a `:description' block when defining policies:

> (define-policy my-policy ()
   (:description "The awesome and very meaningful description string."))
Forgot to extend example policy code