Email Aggregation

Rather than sending out an e-mail per activity, mails will be aggregated with other emails that have ocurred recently.

This work adds an `emailPreference` field for each user where they can select how they want their email delivered.
 * Never
 * Daily
 * Immediate (with a 10 minute delay to let it aggregate with other activities in those 10 minutes)

The emails are now also internationalizable by virtue of re-using the 3akai-ux template macro's and UI bundles.
Push out email based on the user's timezone
Merged master into simong/emailaggregation
Merged oaeproject/master into emailaggregation
(Email aggregation) Review follow-up

* When marking your notifications as read, no emails will be sent out for previous activities
* Spliced of activity/email bucketing logic into it's own module
* Various clean-up + added tests
* Exposed activity view adapter through the UI api
* Cleaner UI template util functions
bugfix reset aggregation

When there were no active aggregation keys (for example, when you've just
reset your aggregation) we would try to delete nothing, which triggered
an error from Redis.
email template fix for thumbnails
(EmailAggregation) - Added a simple aggregator for email activities
Configurable `emailPreference` tenant default
Marking notifications should only clear the activity stream
when the user’s email preference is set to immediate.
Take the tenant’s default timezone into account when a user hasn’t configured one
Added the email hashing back in for activity emails
Removed user.timezone property
Merge oaeproject/master into emailaggregation
Initial implementation of email designs
Temporarily setting travis ci to simong's 3akai-ux branch
Checking out UI emailaggregation branch
Email aggregation follow-up
Email aggregation: Move bucket id generation into email
Email aggregation follow-up

 * 3 collectors for immediate, daily & weekly collections
 * various cleanup