CYB-215 Engagement index: opt-out students are still visible to everybody

* added several scopes to Activity, and #visible_to filters on Student and Activity
* increased spec coverage on Activity and EngagementIndexController
* some refactoring of the EngagementIndexController to reduce method size (still too big)

https://jira.ets.berkeley.edu/jira/browse/CYB-215
Merge pull request #182 from coyote/plug_leaky_share_data

CYB-215 Engagement index: opt-out students are still visible to everybody