cleaned up game() and fixed some bugs.

made a function ```bool grid.move(char);```
that checks if the input is valid and calls void fill(int).
also there was an ugly bug (it used Grid.Max instead of grid.localMax -
so 7,8,9 were impossible to enter in challenge mode and loaded games)

tried to make Game() easier to understand (put some of the things it
did in other functions etc).

ignore my previous 2 commits as they lead to some merge problems - this should be fixed now.