Create a __no_return__ macro to flag a function as not returning.

This commit is written by @martiert.

This is needed to compile with clang >= 3.1, as clang demands
functions that don't return to be marked as such. This is the case
for any function that always throws for instance, which we currently
have two off.