darwin: fix bugs in the reenumeration of devices
This commit fixes two bugs in device re-enumeration (enumeration after
init):
- The internal device object (cached device) was being re-used but the
user-visible one was not. This would cause the user to get stale data
when using the device afer reset. Now the (per libusb spec) the
user-visible device object is re-used and updated.
- If multiple libusb contexts were active then only the first context
was handled correctly. Fixed by moving the cached device search
out of process_new_device().
Signed-off-by: Nathan Hjelm <hjelmn@google.com>