Remove SelectionListener::OnSelectionCleared().
Make the SelectionListener class visible outside the shared library.
Don't use the global mouse state, so we can 'mock' it in tests.
Add a method to simulate user clicks on board locations.