Add an EndShutdown event

Added an EndShutdown event to give better parallelization of shutdown
code.  Most code for shutdown is waiting for a thread to complete, by
splitting into two events we can have one event which signals shutdown
and one that actually blocks.
Fix issue where we left betting open

Fix issue where betting rounds are left open after results.