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

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.
Merge pull request #89 from yocchi/clang-workaround

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