First attempt at a separate Cli and CliSpy

There is a certain amount of complexity in passing
structs around.
The primary tests is currently ignored due to this.
Move the string conversion to Player enum
Renames Player enum in line to Marker
Add infrastructure for Players
Adds more infrastructure for Players and AI
Begin implementing AI with best_move method
Add a small example of parametric polymorphis from Steve Klabnik
Introduce 'value' to the board
Move board into core module
Moves line into core package
Moves marker into separate mod under core