Rename fail_if_exists to raise_if_exists

I'm not sold myself that adding the decorator is the cleanest way. Some
static analyzers will go wild, but you have to live with that when
using such dynamic programming languages.
It should be possible to get rid of the kw_value argument and do a lot of meta programming in the implementation of `new_function`. Would it be worth it? I think the api was *terrible* and the implementation would be ugly and error-prone.