Clean up notification widget

As I was working on #6488 and playing with the notification widget, I wanted to have notifications that were clickable *and* still had a timeout. However, in the current implementation of the notification widget this isn't possible -- you can only have a clickable notification if the timeout is undefined, which means it will stick around forever, which isn't necessarily desirable.

This pull request makes those two features independent, as well as fixing some typos/syntax errors, and adds some documentation to the `NotificationWidget` object.

It doesn't look like there are any tests for `NotificationWidget`, so I might try to add some of those, too.