Resolves #50: Overhauled game error handling to make it friendlier.

Did a lot of work in the web service, refactoring GameConflictException
and expanding its use. Then, enhanced the webapp a bit to display those
errors in-game, rather than via stack trace pages.
Resolves #47: Reworked logic to avoid ArrayIndexOutOfBoundsException.

Technically, I just moved the error from the webapp to the web service.
However, with the work done for Issue #50, the web service and webapp
now handle the new error gracefully.
Updated the work log.