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
CYB-301 Comments are being created, but not shown on gallery detail view
  * stray 'end' line in CommentsController#index, meant that the 'else' clauses where a record did not get persisted, in fact, was always executed.
Merge pull request #182 from coyote/plug_leaky_share_data

CYB-215 Engagement index: opt-out students are still visible to everybody
Merge pull request #183 from coyote/fix_400_in_comments

CYB-301 Comments are being created, but not shown on gallery detail view
CYN-302, only 'touch' datacultures-in-maintenance if  is gt zero
CYB-302, add rake db:seed (after db:migrate) to deploy script
Merge pull request #184 from johncrossman/CYB-302

CYB-302, only 'touch' datacultures-in-maintenance if  is gt zero
CYB-286 - Keep the sort and filter in the Gallery when returning from the detail view

https://jira.ets.berkeley.edu/jira/browse/CYB-286
CYB-295 - Add a button to download the CSV file for an instructor

https://jira.ets.berkeley.edu/jira/browse/CYB-295
Merge pull request #185 from christianv/CYB-286

CYB-286 - Keep the sort and filter in the Gallery when returning from the detail view
Merge pull request #186 from christianv/CYB-295

CYB-295 - Add a button to download the CSV file for an instructor