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
Added proper conditions for different situations during policy usage
Properly export condition symbols for policies
Added macros for using multiple policies at the same time within one call

Introduced `with-policies' and `with-named-policies' to allow wrapping `body' code into lists of policies, each with individual parameters.
Moved the whole `with-policy' code from cram_plan_library to cram_language
Merge pull request #9 from fairlight1337/master

Moved the whole WITH-POLICY code from CRAM_PLAN_LIBRARY to CRAM_LANGUAGE