Add overload of TestWatcher.skipped() that uses the external AssumptionViolationException.

This allows code using TestWatcher to handle assumption violation exceptions
without using deprecated classes.
Mentions that you need to create a branch
Update CONTRIBUTING.md
Merge pull request #928 from kcooney/test-watcher-internal-assumption-violation

Add overload of TestWatcher.skipped() that uses the external AssumptionViolationException
Use EventCollecter if possible.

Avoids duplicate implementations of RunListener for different test and
provides Hamcrest matchers for verifying events sent to the listener.