Refactor and minor improvement on ListView class.

Handle arrow keys to modify selections even when there is no selection yet initially.
Merge remote-tracking branch 'upstream/master'