use view holder pattern in KeyListFragment

Closes #551