[BREAKING] Fix design issue where entries and events were associated too early

This leads to unexpected entity associations when flush() is called, which could
have resulted in entities being persisted when that behavior is not expected. We
took appropriate precautions in the places this was used, which are not
necessary anymore.

This also adds two new interfaces for adding events and entries on the
respective entity classes.