Fix # 1286 The NaN misinterpret as Number

It could have been written in a more readable way `if (isNaN(value) || !isFinite(value))` but anyway, after discussion with @flongo and @divdavem we rather tend to think to return true for `Infinity`.

So please change this line to  `if (isNaN(value)) {` 
parseFloat is not needed here, any non-number values will be rejected on the following line `if (typeof(value) === 'number') {`, the only exception is `NaN`.

Also in the test, please add a check for Infinity:

this.assertTrue(typeUtils.isNumber(Infinity));