Refactor/events

- Extract event_items from Event class
- Made 'publish' and private 'notify_user' methods for each Event Item
- Created NotificationItem base class and inheriting NotificationItems
- Added test for existing DiscussionItems and base class