Add some specs for LimitedVisibilityHelper#role_ids_for_current_viewers
Return consisten arrays of integers in LimitedVisibilityHelper#role_ids_for_current_viewers
Simplify method calls in projects/visibility partial

- Project#member_principals association is already defined to include
  principals
- sort{|a,b|a.foo<=>b.foo} is equivalent to sort_by{|a|a.foo} (with the
  added benefit of a cache that calls a.foo only once per object, then
  serves from cache...)
Don't reinvent 'role_ids_for_current_viewers' helper in issues/show_involved_roles partial
Work consistently with ids instead of strings in all views

+ introduce Role#authorized_viewer_ids for clarity
Simplify variables in roles/select_involved_roles view
Consistent return types in LimitedVisibilityHelper#visibility_roles_for_current_user
Remove useless '.all' in LimitedVisibilityHelper#visibility_roles_for_current_user
Simplify LimitedVisibilityHelper#role_ids_for_current_viewers thanks to Role#authorized_viewer_ids
Avoid find_by_* methods that are deprecated in rails 4.0
Simplify LimitedVisibilityHelper#visibility_roles_for_current_user even more by requesting things directly through the Role model
Fix typo introduced in the latest commit
Remove colon for consistency with other labels
Replace data-filter with data-role-id in role tags

It is more precise. We cannot use something as generic as 'filter' and
be sure it's not used elsewhere in the page or it won't some day
Refactor visibility role display into its own partial
Begin splitting authorized_viewers form into roles and issues

The current form makes it very unclear and I hope refactoring a bit will
make it easier to simplify things, leave JS code under a static file,
etc.
Sort visibility roles in issues/show partial
Move javascript code related to the roles form into the static .js file
Rename 'involved-roles' css id to 'involved-roles-form' so that it's clearer and won't be mixed up with the '.involved-roles' css class
Avoid extra SQL queries in roles/selected_involved_roles