Extract BlockJUnit4ClassRunnerWithParameters.

Separate the class from the Parameterized runner. Makes it clear, that it is designed for reuse.
Use a ParametersRunnerFactory for creating the test for a set of parameters.

There's now an explicit component for creating the runner of a single set of parameters. IMHO this is a better extension point than overriding a method.

The factory can be specified by the @UseParametersRunnerFactory
annotation or you can subclass the Parameterized class and provide
the factory to its constructor.
Fixes wrong Runner within documentation.
Add documentation.

The factory must have a public zero-arg constructor.
Remove unused import.
Use List instead of array.

Handling lists is easier than handling arrays.