[repository] call remove events earlier
[repository] implemented proper cascading removal
[repository] added missing removeAndFlush to interface (BC break!)