* Revert most of the changes to examples, because ugly macros don't belong
in examples. Just use constexpr as appropriate.
* Revert Lambda changes as they're wrong and Boost.Lambda doesn't support
constexpr.
* Remove include of broken math_fwd.hpp.
Ensuring that:
* it still works as before on C++98 and C++03
* C++11 "strict" constexpr is used where possible
- requires replacing { R x; return f(x); } with { return f(R()); }
* C++14 "relaxed" constexpr is used only where otherwise impossible
- assignment operators
- functions who's implementations require more than a single return
statement