Work around Apple's API breaking the C standard
Don't embed directives within macro arguments

This is undefined behavior.
Don't declare objc_classname_to_class inline

It is too big already for inlining to make any sense.
Multiple dtable / sparse array improvements

* dtable.m is now the old sparse array, using IMP as type for values and
  thus not violating the C standard anymore (functions may not be stored
  in void*)
* New sparsearray.m which can work with any size, based on the sparse
  array from the fast path of class.m
* Fast path of class.m now uses the new sparsearray.m
Fix a few instances of signed vs. unsigned
Work around dlsym() API not being valid C

This only silences the compiler. Storing function pointers in void* is
illegal, yet POSIX requires it.
Enable -pedantic