Add BoardComponent

This now handles input and rendering of the board