file_data_sink_impl: Make close() never throw
file_data_sink_impl: Make close() never throw

close() is supposed to always succeed in releasing resources. Because
of that, we can't tolarate exceptions from wait(), which may happen if
the _write_behind_sem.wait() throws. We might be leaving behind
backround work, leading to use-after-free.

Mark close() and wait() as noexcept and prevent the exceptions by
reserving space in semaphore's wait list in the constructor.

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