Fix problem with array arguments to mock methods

Under certain conditions spock would throw a ClassCastException in
PositionalArgumentListConstraint.expandVarargs. The conditions were:

- A method is mocked whose last argument is an array of primitive objects
- The method has an interaction specified
- The method is invoked with a last argument that is an array of primitive
  objects
- The invocation matches the method signature, but does not match the
  interaction

A fix has been made for this case, and a spec that would expose the problem has
been added.