generalize module loading for submodules

Rework module loading code with sub-modules (modules loading modules) in mind:
* `flux_modfind()` searches each search path component recursively for the specified module name.  This lets us create hierarchy, e.g. comms modules are installed to `$libdir/flux/modules/cmb/` while scheduler plugins could be installed to `$libdir/flux/modules/cmb/sched/`
* allow module names to be hierarchical, e.g. `sched.backfill.priority`
* modify `flux_insmod()`, `flux_rmmod()`, and `flux_lsmod()` so that messages are redirected to the appropriate module when a submodule is targetted.  For example, while an insmod of `kvs` generates a `cmb.insmod` message, an insmod of `sched.backfill` would generate a `sched.insmod` message

Down the road we can change modctl so that it can automate distributed management of submodules as well as comms modules.  That's not part of these changes however.