Add cppcheck linter to tests, fix the things it complains about
more style/consistency fixes
fix a memory leak when using options.binds
Merge pull request #13 from uber/g_list_free

fix a memory leak when using options.binds
ignore test-driver binary
refactor things to use const args and static functions

This does a bunch of things:
 * define most variables in main to have static linkage
 * define default settings more cleanly in main
 * use static functions wherever possible in tcpserver
 * use static functions wherever possible in udpserver
 * make more functions const-correct (also makes them thread-safe)

Besides cleaning up the interfaces and defaults, this should have some small
performance improvements since the compiler can optimize static functions more
aggressively.

There's still further work to improve static correctness in the other header
files.
fix static duration, and unused function
remove dead code and fix static correctness in tcpclient
Merge pull request #11 from uber/cppcheck

Add cppcheck linter to tests, fix the things it complains about
Merge pull request #12 from uber/more_style_fixes

more style/consistency fixes
Merge pull request #15 from uber/static_stathasher

fix static duration, and unused function
teach stats_log how to do dynamic memory allocation
fix merge conflicts
fix a memory leak
Merge pull request #16 from uber/tcpclient

remove dead code and fix static correctness in tcpclient
Merge pull request #14 from uber/arguments_refactor

refactor things to use const args and static functions
Merge pull request #18 from uber/dynamic_log

teach stats_log how to do dynamic memory allocation
implement the carbon protocol
less memory allocations
fixes suggested by jeremy