Better support for different types of Notification

In order to better support different types of notifications (e.g. team invitations vs. nitpick notifications) as discussed in #893, I've added a type to the `notifications` table and abstracted the submission id to one `item_id`. I've also created the corresponding `SubmissionNotification` class to keep supporting the current notifications.

If you see something weird, something that needs improvement, etc., please let me know :)