cmake support from Jason Toffaletti
gcc 4.8 has is_trivially_destructible; others do not
silence no-return warnings
update test_optional for name and namespace changes