Add new tests, diagonal support, more tests

This now supports diagonal win conditions. It's also got a "suite" of 30
specs proving it does. Yay tests!