Rewrite handler to work with exceptions instead of returned booleans.
Rework ModuleMain to separate static setup code.

- Enable ModuleAppMan to take a Runnable which is called upon shutdown.
- Write ModuleShutdownHook, which is a runnable shutting down the
  eventLoopGroup passed to it's constructor upon calling of run().
  (Also synchronized to the setup code in ModuleMain to prevent races.
- Make ModuleMain pass a ModuleShutdownHook to ModuleAppManager,
- Make code in ModuleMain static again.