Add an iteration index to the name of parameterised TestNG methods.

Not having unique names causes problems in reporting. Adding the iteration index ensures uniqueness.
Don't try and hide failures to convert TestNG test parameters to strings for the test report.

Previously we used a representation of the failure in place of the value. Now we fail the test with a special exception and avoid including the parameter values in the test name.