Model and controller

@bsoetaer 
Test by opening irb and creating a new CLIClient.  Use start and quit to start a new game or exit the program, and select a column to play by entering the zero-based column number.
I guess this works but it is also fairly inefficient as it checks the entire board each time. Initially I was thinking a victory condition that is checked after each turn, just checking around the new piece as this new piece would be the cause of a victory if there was one. We aren't required to be super efficient though.