Remove most common reflection warnings.

For definline, you have to hint parameters two different ways, because
the function gets evaluated/defined two different ways. So a normal
"function-like" typehint in the arglist, and then a "macro-like"
typehint in the function body.
Get rid of spurious/impossible fallback clause
Fix typehint: should be fully qualified
Improved conditional compilation for 1.2.x.

Use a macro to conditionally compile, rather than Class/forName at runtime.
Remove duplication in number-dispatch.

This way 1.2-compat code can't get out of sync with current code.