Do the right thing if scons is run under scan-build.

`scan-build` is a wrapper script that applies the [Clang Static Analyzer](http://clang-analyzer.llvm.org/) to your code during compilation. It works by setting some environment variables (such as `$CXX`) to insert itself into the build process. That doesn't work by default with `scons`, though: `scons` creates its own new environment from scratch, ignoring the inherited environment entirely.

This group of changes includes logic to detect when `scan-build` is being used. If it is, we selectively import and propagate just the environment variables that are needed in order for `scan-build` to work as intended.

I'm please to report that the Analyzer's default checkers find nothing to complain about in our code as of now. Good!