Unify algorithm (no separate code for "no update")
Pass previous event as second argument to emit

Internally rename 'last' to 'previous'
Replace Iterator with Fragment module

Use case is to observe fragment of database, and not just iterate it
once. Fragment logic is separated into objFragment and fragment that
handles many objects.
Emit id instead of obj on remove

It makes better sense for listeners
Dedicated Event constructor
Index property for events

Needed to get events creation order