For SDT probes which are guarded by a semaphore, stapdyn needs to update
the value to show when the probes are active.
* stapdyn/mutatee.h (mutatee::semaphores): New vector of variables in
this mutatee which represent active semaphores.
* stapdyn/mutatee.cxx (mutatee::update_semaphores): New, used to
increment or decrement the value of semaphores in this mutatee.
(mutatee::instrument_dynprobe_target): When a probe has a semaphore,
create a variable representation of it.
(mutatee::instrument_object_dynprobes): Increment semaphores in bulk.
(mutatee::copy_forked_instrumentation): Copy semaphore variables too.
(mutatee::remove_instrumentation): Decrement semaphores in bulk.
* tapsets.cxx (sdt_query::handle_query_module): Calculate the difference
in load addresses between .text and .data as semaphore_load_offset.
(sdt_query::record_semaphore): Subtract the semaphore_load_offset for
dyninst to get a file-based offset of the semaphore.