import backends once globally rather than inside find()

- if find() is called repeatedly without passing a backend,
then the backend modules are repeatedly imported.  For libusb1,
this leads to library being loaded on each call to find and
therfore libusb_init() and libusb_exit() getting called
repeatedly