Add signbit() implementation for MSVC.
Fix warnings on Windows.

Call js_realloc, not realloc.

4 warnings remain due to the constnes of js_func strtab and vartab
entries.
Silence "no return value"/"unreachable statement" warnings.

clang incorrectly treats a default label as unreachable in a switch on
an enum that has all the cases covered. gcc and msvc complain about
missing return values if there is no default statement.

By making the default case fall through to the JS_TUNDEFINED case we
silence all the compilers and handle corrupt data (an enum that isn't
one of the enumerated values) safely.