Introduces a Line and a Player
Drops println from unused main()

Mind though that having a main() is requried
Add concept of a winning line
Introduces WinnerResult enum for matching on win

WinnerResult can be used to check for a winning line and
get the winner in one go
Promotes functions from tests to board module
Moves line module into separate file
Renames board_spec.rs to match line.rs
Introduces a Board as an array with basic functions
Allow creating of lines of a slice of players
Board now supports winners in rows and columns

The code needs improvement to use abstractions better
Board now supports finding winner in diagonals
Introduces the concept of remaining_moves

remaining_moves will return the indexes which
can be used later on to mark the board without
overwriting previous marks
Moves destrucuting for simpler callsite
Introduces has_draw for board
Improve remaining_moves test
Use Line in board where possible
Replace function has_winner with method on Line

Line now implements the Winnable trait
Move more Line functions to methods
Introduces an actual Board that can make moves