Merge compiler workarounds, construction from a literal 0, and use of a couple Boost.Math functions from trunk