properly handle unexpected exceptions

Prior code followed a poorly explained example and then would
just re-throw the exception without actually catching it. The
new code (while specific to gcc and clang) will log the unexpected
exception type so it will not be fatal.

Tested: throw an std::string in a handler and see that it is not fatal.
        MESSAGE=Handler failed to catch exception
        EXCEPTION=std::__cxx11::basic_string<char,
                       std::char_traits<char>, std::allocator<char> >

Change-Id: I4734aba8ea6fb02ad8ce54be55e860d2b4c6576c
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
2 files changed