Tidied up the alarm code in the widget manager.

Alarm now only gets set on creation of widget, and is canceled upon
deletion. Not sure if this fixes the random sign in/out stuff.