Stop spinner from staying on while saving drafts

Robert Schroll noticed the spinner remaining active after saving a
draft occassionally.  He also noticed a GTK critical warning about
a bad id being passed to Source.remove.  Our handling of the timeout
id in the composer was lacking; this tightens it up and ensures the
value is always set to zero once the Source has been removed.