Add system roles for default resource context. Enforce access controls
on default resource context. Add behave tests that prove enforcement
works. Add migration so that users don't lose the access they already
have.
Fix authorizations custom list loader [story:57222576]

* Due to disconnect of Model instances to stop event proliferation, the
  authorizations list was loading correctly but attempting to display
  only stubs.  Added `.reify()` in a few places to fix.
Fix GGRC.queue_event

* `GGRC.queue_event` would previously act as `setTimeout(..., 100)`,
  because the `currentTimeout` would never not be `null`, and thus
  always trigger `runNext()` for each call.  E.g., queued functions
  would actually be run in "parallel" -- with only the initial delay,
  but no delay relative to the previous queued function's completion.
Add and handle DirectiveControl model

* There are now two linkings between Directive types and Controls --
  either Control#directive_id or DirectiveControl.
Add details about mappings to trees

* Shows the list of objects to which the current node instance is
  mapped.
* Cleans up `MappingResult` class with more consistent observe /
  compute-triggering support.
* Adds a few Mustache helpers to provide needed functionality.
Merge remote-tracking branch 'origin/develop' into feature/mapping-cleanup
Fix check for private and null context on post of a private program.
Added a check in Modals.draw so that it doesn't draw in a previously destroyed modal
Add basic `_display_name` to `Role`, `UserRole`

* [story:56095962]
Fix "already mapped" messages in two cases

* When mapping from LHN, show the error message when POST returns an
  error
* When mapping from ModalSelector, don't throw an error if the modal has
  been closed before POST response comes in
Fix issue of removing multiple nodes from one `unmap`

* Issue was that `removeChild` handler only checked for `id`, but some
  lists can contain multiple types.  When `id` of multiple objects
  overlapped, it would remove all matching elements (but not `unmap` in
  the database.)
* Also make consistent the `li` elements of TreeNode views.  They all
  now use `data-object-id` and `data-object-type`, and
  `data-object-type` is always `instance.constructor.table_singular`.
Remove `print` from `ggrc.fulltext.mysql`

* It appears as an error in AppEngine server logs
Merge pull request #367 from reciprocity/feature/document_null

Added a check in Modals.draw to prevent drawing in destroyed modals
Merge branch 'develop' into feature/system-roles
Merge branch 'feature/mapping-cleanup' into feature/system-roles
Now with authorizations widget in admin dashboard.
Fix role assignment migration so that current users are object editors
and program creators and don't lose rights.
Merge pull request #368 from reciprocity/feature/mapping-cleanup

Mapping cleanup; adding details about extended mappings
Fix authorizations widget issues

* Main issue: update checkbox state after replacing `this.join_list`,
  since this `replace()` operation causes the options to be redrawn
* Also remove `update_list_target`, since we never use `tmpl`-style list
  templates anymore
* Also ensure checkbox state only changes after server confirmation
* Also don't use `getRootModelName`, just `shortName`
Merge pull request #369 from reciprocity/feature/authorization-checkboxes

Fix authorizations modal issues