The notifier can now check an expected result.

It basically now can take an expected result and can push a particular
pointer into the spsc queue. This allows for some more checking.
Hiding sync and inner queue state.

By making them private/private inherited.