Refactoring of interaction code of SongGridViewControl.

- Moved almost all of the keyboard and mouse interaction code to
GridViewControlBase and ListViewControlBase.
- Edited some of the code to make it more generic and reusable.