Fix two crashes caused by unretained objects

The first crash can be reproduced by running the unit tests in Release mode. I've replaced the pair struct (which doesn't support ARC) with a two element array. (That seemed to be the simplest approach.)

I couldn't reproduce the second crash in the unit tests. It happened when using the `hasProperty` matcher with a native type. From the code it is clear that the created boxed number wasn't guaranteed to be retained. But in the unit tests it happens to work.