Adding functionality to test against sparse arrays

I ran into an issue with the following:

`spy.calledWith([2,undefined])`

which failed because I was creating the array using the following in the code being tested:

    var array  = new [].constructor(1);
    array.splice(0,0,2);
    spy(array);

This was because it won't loop over the sparse elements using a for in loop.

The issue can also be resolved by creating the array in a similar fashion in calledWith argument, however it seemed to be a comparison issue as the lengths are actually equal.