Correct isArray for falsey values, cross frames and array extensions
Optimize and simplify isFunction and isObject