New minimax implementation

Less memory usage for jruby performance
Inject game_state into minimax_ai
Refactor game_state to be data structure
Pull game_state logic into minimax_ai
TODO: alpha beta pruning