PR12947 Properly track the creation of probes using hardware breakpoints
The logic for creation of probes using hardware breakpoints was incorrect.
The register_wide_hw_breakpoint() can return error codes in place of the
pointer. The value of the pointer needs to be checked to determine
whether it is the range of values indicating an error. The setup
code also needs to properly track whether the registration was completed
on a probe, so the shutdown code only calls unregister_wide_breakpoint()
for the probes that are actually registered.