Detect timeout safely.

In the previous version, there is a problem around the countdown timer:

the user tries to send a mail.
=> the shared flag becomes false.
=> a new timer A is started in the countdown dialog.
=> the user cancels the countdown dialog.
=> the countdown dialog is closed, but the timer A still working in the background.
=> because the shared flag is false, the mail is not sent.
=> the user tires to send the mail again.
=> the shared flag becomes false.
=> a new timer B is started in the countdown dialog.
=> *the timer A is reached to the countdown limit, and it sets the shared flag to true.*
=> the user cancels the countdown dialog.
=> the countdown dialog is closed, but the timer B still working in the background.
=> *because the shared flag is true, the mail is sent immediately, even if the user cancels the countdown dialog.*
=> repeat.

By this commit, the shared flag is removed and expentable flag for each countdown is introduced.
(We also should cancel the background timer when the countdown dialog is closed...)