update class diagram docs
Merge pull request #125 from camallen/update_class_diagram

update class diagram docs
do not allow nil subject_ids to be tracked
set up default emtpy array for user seend subjects subject ids
track which subjects a user has seen and submitted classifications for.

Tried to be as efficient as possible in the request / response cycle for classification create. We can look to background the UserSeenSubject add seen subject method if this is taking too long.
explicitly test the subject_id was stored in the DB
gracefully handle invalid subject id's when updating user_seen_subjects
use ruby 2.0 keyword compatability
tell don't ask
better example description
Fix default table values in JRuby
Update rails to fix array column default values
Update restpack_serializer gem to edpaget's branch

Rails 4.1.4 changes the value of the `.macro` property of the association object of a
`has_and_belongs_to_many` relation from `:has_many` to
`:has_and_belongs_to_many` I'll be sending a pull request to the master soon.
Merge pull request #127 from edpaget/update-rails

Update rails to fix array column default values
Add user communication preferences

Adds a UserProjectPreference model to hold any per project settings.
It's created the first time a user classifies on a project, which
should definitely be moved to a background task at some point.

Closes #84
Symbolize Keys for MRI