semaphore: make exception generated on errors configurable
semaphore: make exception generated on errors configurable

Useful if semaphore is used as a building block for some other
abstraction that wants to throw its own exceptions.

kjniemi/seastar,kjniemi/seastar,cloudius-systems/seastar,kjniemi/seastar,cloudius-systems/seastar,dreamsxin/seastar,scylladb/seastar,cloudius-systems/seastar,syuu1228/seastar,syuu1228/seastar,syuu1228/seastar,avikivity/seastar,dreamsxin/seastar,avikivity/seastar,scylladb/seastar,avikivity/seastar,scylladb/seastar,dreamsxin/seastar