fix getUncommittedEvents being used to also clear the uncomitted events

added the following methods to `AggregateRoot` and therefore to `EventSourcedAggregateRoot`:

- `hasUncommittedEvents`
- `clearUncommittedEvents`
`should` should be removed from the method names. `it_clears_uncomitted_events_after_adding_an_aggregate_root()`. The reason is that it is what it does, and if it dosent it fails, and as every test can fail theres no reason to have it in the method name.