Parameterized reuses testclass

The `BlockJUnit4ClassRunnerWithParameters` created a new instance of `TestClass` for each parameter set. This lead to repeated class scanning and noticeable memory allocation. Reusing the `TestClass` avoids theses side effects. `TestClass` is reused by the Theories runner, too, because it is now possible.

Fixes #1046.
I don't like the idea of deprecating this method so soon. Anyone who overrides this method in a class that extends `Theories` would likely be broken by these changes.

Instead of passing the `TestClass` instance into the `ParentRunner` constructor, why not add a static factory method to `TestClass` that has a cache mapping `Class` to `TestClass`?