Don't rely on Array.prototype.map

Seems like this is the only thing that makes https://github.com/visionmedia/mocha not work in older browsers.
Hmm, I didn't think about that, I just copied the function from somewhere else. I think it originates from https://github.com/LearnBoost/expect.js/blame/master/index.js#L812-L824

It seems like the reason for that check is sparse arrays. If I comment out the check and the use of `Array.prototype.map` I get:

```js
console.log(map(new Array(5), function (item) {return 10;})); // [10, 10, 10, 10, 10]
```

as opposed to: `[ , , , , ]` when the check is there.