Setting up state machine for #6

Prevent clicks of buttons out of the right state/animating buttons
Prevent animation out from bad hiding

Hiding element is handled upon animation completion, but showing is done immeidately.  This can lead to an inconsistent state if showing starts animating before hiding is finished.