Added BOOST_NORETURN macro to mark functions that do not return normally.

The implementation is based on boost/exception/detail/attribute_noreturn.hpp.