remove the "keyField" parameter from LibraryDataProvider's
constructor. Since it always operates on Media objects the key
can be deduced from the first data item (no key is needed if the
data set is empty)
factor out the commonalities from the index actions to a common
base method