User privacy controls

Back end:
* Separate `PrivacySettingsForm` from `ProfileSettingsForm`
* User settings page: stay on page after save or cancel (per JeffF)
* Postback to user profile updates privacy settings

Front end:
* Add bootstrap modal to show privacy settings on profile page
* Module `privacySettings.js` controls toggling and display of privacy settings
* Used in both user profile and settings pages, each with their own save and cancel buttons

Fixes #174
Include Bootstrap modal sass module

We are now using the modal for editing privacy settings on the user
profile page.
Merge pull request #187 from azavea/feature/jcw/edit-profile-privacy

User privacy controls
Style user settings page
Secure group edit with new decorators

This is a large refactor that allows for chainable decorators that
decorate the ``request`` with a group object and enforce editability
constraints base on the logged in user.

The ``group_request`` decorator takes it's cues from the auth context
processor. Views wrapped with this decorator will have a
``request.group`` in addition to ``request.user``. This makes for easier
composability of decorators and has the side effect of ensuring that the
group is only queried once.

I renamed the existing decorators to make them more forceful. For
example ``is_census_admin`` is now ``user_must_be_census_admin`` which
is more suggestive of the fact that a view wrapped with this decorator
will return 403 Forbidden if the ``request.user`` is not an admin.

While working on the decorators, I also clarified the two different
types of training, which grant different levels of page access.
Add styling
Merge pull request #188 from azavea/feature/style-events

Add styling
Merge pull request #186 from azavea/feature/jcw/secure-group-pages

Secure group edit with new decorators
Merge
Merge branch 'feature/style-user-settings' into develop
Merge branch 'develop' of github.com:azavea/nyc-trees into develop
Fix lint
Add ability to follow/unfollow groups
Wire up follow/unfollow button on group detail page
Add tests for follow/unfollow group