Differentiate Section from Clause; split Clauses/Contracts

* Adds `sections.type` column to be either `Section` or `Clause`
* Adds `SectionBase` and `Clause` models to handle polymorphism of
  `Section` and `Clause` models
* Adds `DirectiveSection` to map `Directive` objects to `Section` and
  `Clause` objects non-directly (currently only used for `Clause`)
* Add `Clause` to mappings and widget/controller definitions and
  "join_descriptors"
* Add `Clauses` to LHN search list