Negamax working now. I think I have enough tests to cover the behavior. Needs optimizing though. Possibly it's own class.