refactor(kff.BindingView): diff based rerendering of collection bindings

When rendering filtered list, do not maintain index map of rendered items. Instead, create a new filtered collection and reuse already rendered nodes with new model items. This allows for better performance of heavily modified/filtered collections and it would be possible to add live collection sorting in future.
style(all): missing semicolons, vars, etc. by jshint
feat(kff.BindingView): implement live sorting into collection binding

Live sorting (sorting of bound collection) is done in similar way as filtering. Sort function is specified in attribut 'data-kff-sort' using 'model.compareFunction' format. It watches any change in collection or in collection item, which can lead to an overhead in some situations but DOM manipulation is done only on actual change in order, so it should not be critical.