DataGridViewVirtual refactoring

It now plays much nicer with other controls and allows for simpler composition with other controls.