Changed should_try_to_verify_correct_number_of_times test to be independent on time problems

Fixed issue #66 (flaky test)
Flickering test - renamed DurationChecker to Timer, removed unnecessary interface (initially wanted to be in accord with convention but the interface was unnecessary), added test for timer, changed other tests to use the Timer.
Tidied up the code around the timeout verification.

Attempted to make the Timer class easier to comprehend.
Moved class to a better package.
"Update release notes by Travis CI build 255 [ci skip]"
Increment version '1.10.3' -> '1.10.4' by Travis CI build 255 [ci skip]
Regenerated the release notes [ci skip]
Improved the build logic related to releases.

Avoided the hack with applying the release-notes plugin late. Added task for updating release notes locally for dry-running purposes [ci skip]
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
"Update release notes by Travis CI build 256 [ci skip]"
Increment version '1.10.4' -> '1.10.5' by Travis CI build 256 [ci skip]
Added a TODO [ci skip]