Revert to C90 featureset for travis.
Clean up symbol visiblity for dynamic lib hygiene.

Ruby extensions are loaded as dynamic libraries. Since all extensions
share the same dynamic symbol space, it's much safer to whitelist symbol
visibilty. This avoids the possibility of accidentally stomping on each
others definitions and causing all sorts of hilarity.