Wrap naked state change in else block.
Consolidate more functions into the whenUnhandled block.

Consolidate similar functions into the whenUnhandled block so that only
the functions that need truly unique handling need to be written in
their respective state/case handlers.
Handle all outcomes of TakingCalls/LeaveGame.

When taking calls, a leave game message can produce the following
outcomes:

- Failed command
- Empty game
- Finished calling round
- No state change

All of these outcomes need to be handled.
Transition to EndingRound with timer data

If the transition to endingRound is not made with timing data, the
EndingRound state will never cease.