Fixed the transient problem that caused test failures.

Ensure the state is reset correctly after a test run. Enabled back the test that was disabled previously.
Fixed #90 Mockito hints at the "non public parent" problem.

During state validation, when invalid use of the API is detected, Mockito also hints at the limitation of the mocking engine, that we don't support mocking methods that are declared on non-public parent class.
Added specific exception type.

Related to #90. It feels this scenario deserves a custom exception type.
Tidy up: renamed a test, added javadoc, removed @Ignored test