Bugfix: prevent calendar popup from being destoyed.

The window should intercept the delete event and hide itself,
otherwise it's gone forever.
Merge pull request #29 from escherdragon/ready4upstream

Bugfix: prevent calendar popup from being destoyed.
Added missing Haddock comments.
Merge pull request #30 from escherdragon/ready4upstream

Added missing Haddock comments.
Add a missing type signature
Mention ghc 7.6 compat in the changelog
Remove commented-out code
Remove an unused import
Make a local function top-level

It only accessed local state because it was ignoring its parameter.
Add an explicit export list to the FSMonitor module
Fix a shadowed variable warning, add an explicit export list
Fix a 'catch' warning
Silence an unused variable warning in the systray
Fix a shadowed variable warning
Rewrite the freedesktop notification widget

The new one is much simpler and based on STM.  It seems to
work very well so far, but needs some more testing.
Simplify the freedesktop notification widget and fix a race condition

Before, if there was a sequence of events like

1) T1 atomically modifies a message
2) T1 suspends
3) T2 atomically modifies a message
4) T2 suspends
5) T2 wakes up and displays its new message
6) T1 wakes up and displays its new message

The order of the two GUI update events could have been swapped by this
unfortunate schedule.  Instead, each thread now simply sends a wakeup
to a single thread responsible for updating the GUI.  Even if the
wakeups are sent in the wrong order, the GUI update thread is always
checking (atomically) the latest view of the "Current" message.
Before the "current" message was being included in the GUI updates
directly, meaning it could become out of date during a race.
Merge remote-tracking branch 'upstream/master'