auto-mark old messages as read when joining comm thread (bug 931223), refactor comm tests/utils

This patch is for "Commbadge", the communication dashboard between developers and reviewers to reduce friction in the app review process. Consists of threads and notes like a forum.

**Auto-marking old messages:**

- when someone is CC'ed on a thread, mark all existing messages as "read" (```CommunicationNoteRead```)
- when someone posts a note, mark their own note as read
- applies to both reviewer actions and api actions

**Refactor comm utils:**

- in ```create_comm_note``` have actual args instead of ```**kwargs```, document args
- have default permissions (notes default visible to devs, reviewers, and mozilla contacts)

**Refactor comm tests:**

- add more tests (especially to comm utils)
- use foreign key names (e.g. ```app.threads```) rather than retrieving objects through models (e.g. ```Thread.objects.get(addon=app)```)
- note/thread factory