Story 59656310: Improved keyboard navigation for autocompletes
Sticky header partial updates:
handling more than one header at a level
expandable/collapsible headers as for PBC request filters

This is a WIP.  Sending to Andy for further review
Fixed issues with sticky headers where headers outside the viewport were used in header positioning computations (also reverted some prior changes as they resulted in regressions)
Fixed an issue where headers with a height taller than the "scrollaway margin" were disappearing early
Updated sticky headers to use the original header elements as the sticky ones (using the clones as placeholders)
Adding keyboard create fix for documents and objectives templates
Change `owner` to `contact` everywhere

* Includes a migration
Fix `owner_id` references in fulltext search
Add 'notes' field in all Business Objects
Remove `scope` and `organization` from Program
Add `status` to Business and Mapping objects, plus fixes

* Add `status` to Governance, Business and Mapping objects
* Add `Mapping` mixin for all join table classes
* Fix base class ordering in many cases (`Identifiable` must be last in
  the MRO)
* Broke `contact` column into `WithContact` mixin (was on
  BusinessObject)
* Made `Section`, `Response`, and `Audit` not inherit from
  `BusinessObject`
* Added factories for missing models (needed due to `status` field
  validation)
Fix old migration to avoid warnings

* Changed `type` keyword argument to `type_` to avoid warning during
  test migrations
Add `*_alembic_version` to ignored migration tables

* Alembic will now ignore these when autogenerating migrations
Fix spacing between classes in accordance with PEP-8
Add `Standard` as a type of `Directive`
Change `Audit#audit_firm` to OrgGroup foreign key
Formatting fixes
Add `Control#*_assessor` columns; remove `Control#type_id`

* Also update `WithContact#contact` relationship to specify foreign key,
  since now multiple relationships exist between Control and Person
Remove and rename `*#type_id` columns

* Remove `System#type`
* Remove `Document#type`
* Rename `Product#type` to `Product#kind`
Add `type` as a published field on all models

* `*#type` is always the name of the model/class