Simplify staging -> undo flow

It's not necessary to undo the tagging if we prepare with a staging tag.
So let's move the actual tagging to the end and drop undo_and_stage_tag.

Now we don't remove the staging when user aborts "git send-email", so
the condition to check stage message presence is imporoved: if there is
a tag AND the tag has message.

Signed-off-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>