refactorization and some bug fixes

made a method
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).