Turn NotificationPresenter into an abstract base class

This will allow us to have Mac-specific member variables without a bunch of
ifdefs.
Show notifications even when the app is focused

It's a little icky to be taking over global state (NSUserNotificationCenter's
delegate) like this, but until we have evidence that it gets in someone's way
it's the pragmatic thing to do.