isMockDataEqual only accounts for properties in the mock value and not the live value

One of the tests (`Correct data matching on request with arrays`), has a mock like:

```js
    $.mockjax({
        url: '/response-callback',
        contentType: 'text/json',
        data: {
            values: []
        }
    });
```

It then makes an AJAX request like:

```js
    $.ajax({
        url: '/response-callback',
        error: function() {
            ok( true, "Error callback fired" );
        },
        data: {
            values: [1,2,3]
        },
        success: function(json) {
            ok( false, "Success callback fired" );
        },
        complete: function(xhr) {
            start();
        }
    });
```

This test should call the `error` handler, as the mock data does not match the data passed.  However, `isMockDataEqual` does a `$.each` through the mock data to do its comparison.  In this case, the mock data has no items, and it is considered identical.

The same would be true of objects where the actual data could have additional properties that the mock does not include.

If this type of scenario should be supported, then we would likely want to make a pass through the live data as well. It would seem reasonable to do a `JSON.stringify` of both sides to compare, but it appears that the library does respect the mock data having a `test` function to use for comparison at any level.

I can attach a fix to loop through the live object as well, but wanted some feedback on the issue, in case this is intentional or otherwise considered normal behavior.