Generic CFileItemList modifiers

This is an extract of the working commits from #2986.

I added a new concept idea with IFileItemListModifier and CFileItemListModification (manager of IFileItemListModifier implementations) which operate on any CFileItemList if certain conditions are met. It could either be completely incorporated into e.g. CDirectory or just be available to be called from anywhere independent of the context.

The first commit doesn't really belong here but I had to work through CGUIMediaWindow::Update() once again to see where the sorting information extraction would fit best and came across that refactorable code (and I'm too lazy to move it to a separate PR).