tutorial: expand semaphores section
tutorial: expand semaphores section

Also write about the new with_semaphore() function, and the use cases it
is useful for (it is not useful for loops, for example). Also explain
better how to use semaphores to limit resources like memory in more
directly than just counting the number of parallel invocations.

Signed-off-by: Nadav Har'El <625169824b719df98706d88646d0aae6f368ae4d@scylladb.com>

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