Changed how libuvc manages the event handler thread

Instead of creating a thread during uvc_init(), we'll now wait until the user
uvc_open()s their first device. The thread will live until the last device
is uvc_close()d, at which point the libusb_close() event will be used to
wake the handler thread, which will then terminate.