oaeproject/Hilary — pull request #797 by simong (2014-02-18 17:00:56+00:00)
Title: Collabdoc notifications - Not routing notifications to recent collaborators

The first in presumably a set of collabdoc notification improvement PRs.

I've added the notion of "exclusion associations" in the activity router so we can now define an activity route as:

```javascript
{
'notification': {
'object': ['managers', '^recent-collaborators']
}
}
```

This routing config would route activities to all the managers of an object excluding the recent-collaborators.
Excluding works left-to-right, so:

```javascript
// Add all the managers, than exclude all the recent collaborators
['managers', '^recent-collaborators']
```

is not the same as

```javascript
// Exclude recent collaborators from the empty set, then add all the managers
['^recent-collaborators', 'managers']
```

I also added a new Cassandra CF to persist the OAE users to Etherpad users mapping. It might not be a bad idea to store this in Redis as this data is not really crucial. If we would ever lose the data, the recent collaborators set would return an empty set and no managers would be excluded. This means that managers who are in the document at the same time as publishing would receive a notification.
If this is deemed acceptable, I can change the dao so we persist the mapping in Redis.