Cleanup some of the build macros and add __has_builtin
Add framework for compile time type checking
Add "show module status"
Add autoconf checks for builtins, __has_builtin doesn't seem to work correctly with clang 3.4 and __builtin_choose_expr/__builtin_types_compatible_p