Extract method from nextPlayerMakesMove()
Add extra tests in Board to check for all winning combinations
WIP Initial implementation of ComputerPlayer
WIP ComputerPlayer with plain negamax working

Basic version that needs refactoring
Move start() at the top of the class
Add support to PlayerFactory for all game types
Add Player interface

This should of been added earlier before checking
in the ComputerPlayer
Board methods for ComputerPlayer plus changes to ComputerPlayer

Should of been part of previous commits
Includes:
- tests for the ComputerPlayer
- changes made to some of the methods which is WIP
- Board methods that provide moves indexed by 1
Cli version works with all game types

Needs clean up but functionality is there
Remove unused method winFor() from Board
Refactor Line to accomodate a range of positions

This comes useful with boards of various sizes
Change getRows() method to accomodate for different boards
Change getColumns() to work for any board size
Change getDiagonals() to accommodate any board size
Board complete with support for both 3x3 and 4x4
Change CliDisplay to print both sizes of board
Add method to CliDisplay to get user choice for board
Add alpha-beta pruning to negamax
Modify board method that gets current mark

This is to accommodate the 4x4. Added additional
tests for it in the Board class whilst removing
the ones in the ComputerPlayer and turning its
method private.
Rename method that gets all lines