Support JUnit Categories

This adds support for selecting tests using JUnit Categories. It does this by piggybacking off the existing support for TestNG groups. Since JUnit Categories are interfaces, this means giving a list of fully qualified classnames rather than the simpler list of group names in TestNG. What I have *not* done is change the name of the parameters in the command line/maven plugin/ant task etc. These are referred to as "TestNG groups". The question is, do we want to simply rename these parameters everywhere to remove the reference to TestNG (i.e. introduce a breaking change) or deprecate the old ones and add code in all these places to cope with either version? I would suggest the former as it is much simpler and will only affect TestNG users, who I think are probably small in number.