anchor.diff:  = Layers Behaviors
   
   Layer behaviors allow to customize the way a layer of a particular span behaves, e.g. whether
  -a span is allowed to cross sentence boundaries, whether it anchors to characters or tokens, etc.
  +a span is allowed to cross sentence boundaries, whether it anchors to characters or tokens,
  +whether the tree of relations among annotations is valid, etc.
   The layer behaviors tie in with the specific `LayerSupport` implementations. The mechanism itself
   consists of the following classes and interfaces:
   
  
positive.code: * Highlight annotations not conforming with the behavior. This is relevant when importing 
    pre-annotated files or when changing the behavior configuration of an existing layer. The
    relevant method is `onRender`. If an annotation does not conform with the behavior, a error
    marker should be added for problematic annotation.
  ////
  * Ensure that documents being marked as *finished* conform with the behavior. This is done
    via the `onFinish` method.
  * Provide a UI to configure the behavior in the layer detail configuration in the project settings.
    This is done via the `createEditor` method.
  ////
  
negative.code:   behaviors of specific layer types.
  * The `LayerBehaviorRegistry` and its default implementation `LayerBehaviorRegistryImpl` 
    serve as an access point to the different supported layer behaviors.
    Any Spring component implementing the `LayerBehavior` interface is
    loaded, and will be named in the logs when the web app is launched. The classpath scanning
    used to locate Spring beans is limited to specific Java packages, e.g. any packages starting
    with `de.tudarmstadt.ukp.clarin.webanno`.
  
  A layer behavior may have any of the following responsibilities:
  
  * Ensure that new annotations that are created conform with the behavior. This is done via the 
    `onCreate` method. If the annotation to be created does not conform with the behavior, the
  