core: release the context device list when the context is deleted.

This commit fixes a memory leak in the context list patch. Devices need
to be unref'd when the context is deleted. This can happen if either 1)
the backend init fails, or 2) the context is destroyed by libusb_exit().
darwin: fix memory leaks in the darwin backend.

There were two memory leaks in the darwin backend:
 - A CFString allocated by IORegistryEntryCreateCFProperty in darwin_get_interface()
   was not released.
 - The runloop is retained by darwin_open() but was not release by darwin_close().