SelfTest: A revised makefile.

- Major difference: globs all the .cpp files in the directory (which
 avoids us having to touch the makefile every time we add a new test)

- Minor: builds using clang/c++11/libc++ rather than
g++/libstdc++. Ideally, we'd have some nice way of doing this
conditionally.

- Minor: enables a few more warnings