refactor(kff.Events): lazy initialization of events
refactor(kff.Collection): filter method should be non-mutating + mutating behavior should be accomplished by remove method with function argument

BREAKING CHANGE: filter method does not mutate the collection and the result of the callback function is reversed to be compatible with array.filter behavior