refactor module code to reuse more common utilities
All of our current modules contain a large amount of boiler-plate code that is mostly the same across modules. A good example is the class of functions for looking up module records using a file path or some opaque handle (a POSIX file descriptor, a MPI-IO file handle, etc.).
We can likely factor generic versions of these functions into darshan-common so modules can use those instead and reduce the amount of code needed for implementing a module.