refactor out plan9 weirdness

more specifically: we now compile with -fms-extensions instead of
-fplan9-extensions. while the code is still non-standard, it now
compiles with clang.

unfortunately c11 doesn't support anonymous structs in the way we use
them, otherwise we'd be standard c11.

oh well!

Squashed commit of the following:

commit 2eb9187dc17696b63ca2a5547b4acb3108dd6b19
Author: William Light <wrl@illest.net>
Date:   Fri Apr 26 17:11:12 2013 +0200

    get rid of type-casting macros (RTB_OBJ_T(x) etc)

commit 1092dfc8f45e822b5aad3283879a6779d77f0d19
Author: William Light <wrl@illest.net>
Date:   Fri Apr 26 16:44:01 2013 +0200

    macro sugar for RTB_INHERIT()

commit 0d1aebc1cceb671759b1ee78f14ad3dc0b20014e
Author: William Light <wrl@illest.net>
Date:   Fri Apr 26 14:00:06 2013 +0200

    move from -fplan9-extensions to -fms-extensions

    clean compile with clang (yesssss)

commit 79a5c135653bf223d0e0c3a9dc0badb894eb289c
Author: William Light <wrl@illest.net>
Date:   Fri Apr 26 12:46:51 2013 +0200

    implement RTB_INHERIT