commitlog: Ensure we never have more than one new_segment call at a time
commitlog: Ensure we never have more than one new_segment call at a time

Refs #9896

Found by @eliransin. Call to new_segment was wrapped in with_timeout.
This means that if primary caller timed out, we would leave new_segment
calls running, but potentially issue new ones for next caller.

This could lead to reserve segment queue being read simultanously. And
it is not what we want.

Change to always use the shared_future wait, all callers, and clear it
only on result (exception or segment)

Closes #10001

scylladb/scylla,scylladb/scylla,scylladb/scylla,scylladb/scylla