Remove timers and signalfd

Instead of timers, add a mechanism for informing the parent app when the
next timeout is due to happen, so that it can call us at that time.

As we no longer use signals, signalfd has also been removed.
diff --git a/examples/dpfp.c b/examples/dpfp.c
index d5b0c63..d99b3af 100644
--- a/examples/dpfp.c
+++ b/examples/dpfp.c
@@ -473,7 +473,7 @@
 	struct sigaction sigact;
 	int r = 1;
 
-	r = libusb_init(0);
+	r = libusb_init();
 	if (r < 0) {
 		fprintf(stderr, "failed to initialise libusb\n");
 		exit(1);
diff --git a/examples/lsusb.c b/examples/lsusb.c
index 8145d63..c511b29 100644
--- a/examples/lsusb.c
+++ b/examples/lsusb.c
@@ -34,7 +34,12 @@
 int main(void)
 {
 	libusb_dev *devs;
-	libusb_init(0);
+	int r;
+
+	r = libusb_init();
+	if (r < 0)
+		return r;
+
 	libusb_find_devices();
 	devs = libusb_get_devices();