fix ToNumber for objects/arrays, and properly implement isFinite
add lots more cases for isFinite