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.

@martiert Please admit me to create this pull request instead of you.
It is a little more to reach successful build with clang-3.2 on travis-ci.