Two fixes.

The first commit fixes an unused variable in the CHECK_THROWS macro, the second changes from checking the version of clang, to using __has_attribute to check for clang attributes.

This is the preferred way of checking for attributes in clang, and my clang 3.1 did not match, but demanded the noreturn attribute.