System/Proc mapping on import fixes
Override 'model' for Directive and SystemOrProcess models

* this fixes a bug where, in some loading patterns, objects may be
  instantiated as abstract types (Directive or SystemOrProcess) instead
  of one of concrete subtypes
* this also enables consolidating requests for Directive and
  SystemOrProcess subtypes, which eliminates 1-3 startup requests on
  object pages
Move Mapper/Loader methods into models/mappers.js
Alas, abstract endpoints don't work with the backend yet.
Fix Role edit widget

* selection chaining is now handled by events, rather than logic
* add missing mapping types for Program
Added is_allowed mustache helper for permissions
Refactor validate_option and log failed validations
Add custom exception ValidationError
Add behave test for option validation
Removed redundant relay method
is_allowed helper now defaults resource_type/context_id to the page object's values
Updated is_allowed helper to parse more arguments

0..n actions
0..1 resource_type
0..1 context_id
Removed words child of, and added parent directive below description
Tweaked is_allowed for non-Program pages, added is_allowed check for all tree sections
Added permission check for deleting mappings
Merge pull request #271 from reciprocity/feature/carlos_mapping_fixes

Fixes import mapping for sub processes and sub systems
Merge pull request #272 from reciprocity/feature/even-more-mapping

Move mappers/loaders to their own file and fix a couple bugs
Merge pull request #274 from reciprocity/feature/section-child

Minor update to tree - removed text "child of" and added parent below description
Merge pull request #275 from reciprocity/feature/rbac_private_program

Added RBAC permissions checks for private programs (and is_allowed Mustache helper)
Merge pull request #251 from reciprocity/feature/better_validations

Refactor validate_option and log failed validations