emit
Emits a new nextState.
If nextState equals the current state the call is a no-op. Calls onTransition (when a current event is set), then onChange, forwarding both to BlocObserver.
Marked open so that HydratedBloc can intercept emissions for persistence.