ChangeLog keep tracks of events happening in a single {@link Session}. At certain points (usually when Item#save() or {@link Session#save()} is about to be called) ChangeLog can provide normalized list of events that have happenedbefore the point.
The session must add proper events to the {@link ChangeLog} using {@link #addEvent(Event)} and {@link ChangeLog} willmake sure that the events will be normalized (i.e. redundant events will be removed, etc).
@author Matej Knopp
@see #addEvent(Event)
@see #removeAndGetAffectedEvents(Node)