Generalize runtime/hashtable.m
Remove -Wno-deprecated-objc-pointer-introspection
Add -Wobjc-property-synthesis
ObjFW-RT: Call +[unload] on class unregister
runtime/hashtable.m: Add support for deletion
runtime/hashtable.m: Move some code around
OFArray_adjacent: Optimize fast enumeration

This restores the previous behaviour for OFArray_adjacent. It was lost
when OFArray's fast enumeration was changed to be better optimized for
huge arrays that aren't adjacent in memory. I forgot that
OFArray_adjacent just used the implementation from OFArray, as OFArray
had the ideal implementation for OFArray_adjacent, but now that OFArray
is optimized for huge, non-adjacent arrays, this wasn't the case
anymore.
Partly revert 4a8704e

This actually caused more trouble than it fixed. The real reason was
that _POSIX_TIMERS wasn't defined and thus nanosleep() would not be
declared by time.h. libogc however also provides nanosleep(), but an
incompatible one that we don't really want. So after _POSIX_TIMERS has
been defined, it would actually conflict, as both declarations would be
used then. This removes the special handling for Wii and uses the
nanosleep() from time.h, which has a declaration that is compatible with
POSIX.
forwarding/*.S: Include config.h

This is not strictly needed (and means its even included twice, as
forwarding.S already includes config.h), but it helps to assemble the
file directly without going through forwarding.S.