Give row keys a dedicated binding.

This allows us to not assume that the row keys are string typed.

Also, some refactoring into `Binding` base class.