Error info is provided if world load fails.

This essentially involved wrapping the Game in a Result, rather than a
Maybe.
I also factored the Input code into its own module, so other modules
could
access it.