if a backend allocation failed then we could end up with the backend
being assigned to the wrong instance number. Switch to using
_add_backend() everywhere, and pass the instance number to
_add_backend() to ensure that it always uses the correct slot.
Also added comment explaining how num_sensors() works when we have a
sparse set of rangefinders configured