This could be the home of the new driver structure in gpm2.

Some ideas:

- clean seperation: one directory per driver
- shared objects: make each driver being a shared object
- and put those objects into libexec?
- and make etc/gpm2/enabled_drivers a list of drivers to be enabled
- each driver has the following functions:
   * int gpm2_dr_<name>_detect(struct gpm2_dr_info *): detect whether a supported mouse is connected
      returns:
         -1: cannot detect mice
         0: no mouse detected
         1: mouse detected
   * int gpm2_dr_<name>_init(struct gpm2_dr_info *): init mouse
      returns:
         0: mouse init failed
         1: mouse init success
   * gpm2_dr_<name>_handle(struct gpm2_dr_info *): the main function that handles the mouse
      --> perhaps need to pass info from gpm2_dr_<name>_init to gpm2_dr_<name>_handle

- gpm2 passes a structure to all functions:
   struct gpm2_dr_info {
      char *dev;
      char *opts;
   }

- gpm2 creates a fork for each mouse connected
- gpm2 forks die on sigterm (normally issued by gpm2)
