Notification Polling

TODO: 

- [ ] Add `NotificationProvider` instance for polling for new notifications
- [ ] Add `NotificationDispatcher` which will (optionally, depending on browser features) notify the browser that there is a new notification
- [ ] Fix race condition with `App.Notification.loadNotifications()` by making it a callback for `App.User.loadCurrentUser()`