Prototyping work on getting a user role assignment modal in place.
Committing to hand off to Dan.
Merge remote-tracking branch 'origin/develop' into feature/users_roles_mapping

Conflicts:
	src/ggrc/assets.py
Add flush hooks to automatically create a "code", or "slug" as it's
named in the model, for objects that have slugs.
breaking tree items into separate files in styleguide
comments
Add a migration to add uniqueness constraint and to generate default
slugs where needed for the slug field.
main tree for directives resolved
Merge branch 'develop' into feature/add_program_code
fixes to main tree template
Run 'downgradeall' for extensions in reverse order

* extension downgrades may depend on tables in 'core', and should
  remove their foreign key constraints first
section tree completed
minor code tweak
Import ggrc.app in ggrc.migrate

* otherwise, imports will happen in the wrong order, causing import
  recursion and weird things break
Don't duplicate or overwrite 'behave' extra_step_paths
Enforce uniqueness of people.email
Change table and column for users_roles

* 'users_roles' -> 'user_roles'
* 'user_roles.user_email' -> 'user_roles.person_id'
Fix tests for change in user_roles of user_email->person_id

* added rule 'Given a user with email...' to create a Person object only
  if one with that email does not exist already (because behave tests
  don't clean up after themselves)
Fix loading of steps in ggrc.behave

* now loads steps found in parents of all paths passed on command line
* now reliably deduplicates steps paths regardless of command line order
tree update, controls tree fixed
openclose styling removed