CLC-1387 Make notification controller cacheable; DRY up cache writes

JIRA: https://jira.media.berkeley.edu/jira/browse/CLC-1387