Travis Support & Respect CC

This introduces two changes:

1). Add support for travis-ci, so we can verify that everything builds as expected.

2). Respect the CC envar; currently we override to `gcc` no matter what the user has set; now we set CC to `gcc` if it's not set, otherwise use whatever is set. This is useful for people that prefer `clang`.