Changed back end representation of pieces / ops in GameState to an array
rather than a list. All of the in use portions of the interface
unchanged.

Added error handling for illegal combines in the form of
CombineException. Currently the GUI handles an illegal combine attempt
by regurgitating the exception message into the central message box. At
least it no longer crashes on divide by zero or allows cheaty integer
division.