Added validtion that @ClassRule should only be implementation of TestRule

Fixes #1019 
 - Added validation that `@ClassRule` must be an implementation of `TestRule`
 - Did some cleaning up by removing warnings due to missing `@Override` annotation at some places
We still use JDK5, which doesn't use `@Override` when implementing methods from an interface