Fix for broken isNaN implementation in browsers

This is a subtle bug which comes from `undefined` being considered `NaN`, and the fix comes from the strange property of `NaN` in that it is not equal to itself. This should be caught by the type checker, but not if called from the outside world, like jQuery AJAX callbacks.

```javascript
isNaN(undefined) // True;
NaN !== NaN // True
```