CXX-227 Implement hygenic build support

This is going to be hard to review but it does appear to all work, on OS X, on Linux, and on Windows.

This gets us everything under the 'build' directory, the location of which can be controlled with the new --build-dir flag.

Goodbye 'git clean -xfd', hello 'rm -rf build'...