caos: Implement schema support for pointer cascade policies
caos: Implement schema support for pointer cascade policies

Pointer cascades are the first type of a new Caos concept: a policy.
Policies are completely generic, are fully integrated into prototype
schema and are first-class objects.  A distinguishing characteristic of
policies is that they are not part of object definition; and policies
may be defined for objects separately from object definition.

Pointer cascades are "event policies"---they are applied in response to
events and specify which action needs to be taken in respect to the
policy subject.  For example, a "builtins.source_delete" event may be
triggered whenever a link source endpoint is deleted, and the policy may
define a corresponding action that needs to be taken: "ignore" or
"delete_orphan_target".  If the latter action is defined, the link
target with zero references from other links will also be dropped.

A policy for each event may be further subdivided into categories to
provide flexibility if a sub-variant of an event needs to be handled
differently.  For instance, for "copy" event one may define "shallow"
and "deep" categories that specify different cascading properties.

This commit does not implement any actual use of policies, but rather
provides a base mechanism.

sprymix/importkit