Fixed maximum tile boundary in tilesCanMerge

Tiles can only merge if they are less than 6144.
Added board.canMove method

Added method to check if the board can move in any direction, not just
a specified direction.
Added Board.tileIsValid method

Added method to check if a given tile value is valid. Modified
Board.isValid to use the new method.
BoardPrinter prints current score

Updated BoardPrinter to print the current score of the board after
printing its visual representation.
Read in moves from user

Updated main() to read in moves from the user, validate the moves
against the board state, update the board, and print out the updated
board and score.