New method Compose.transition
A comopse state transits several times in backend from wait to done and other
finish state. This patch introduce a new method Compose.transition to
change a compose' state with reason instead of repeating lines of code
to change state, reason, corresponding time and commit.
Signed-off-by: Chenxiong Qi <cqi@redhat.com>