Because merging meant figuring out how to rewrite the langitems to not use unsafe pointers, see the `fail_` items in `std::unstable::lang`. :)

Merging them behind the different function signatures would mean either not being able to specify a fail cause, or needing to first allocate a owned string to store the `*c_char` string into, which I wanted to avoid because it adds an allocation to the unwind path, which in turn might become a problem if we ever want to fail due to OOM in the future.