more refactor, more tests

Try to split any logic related to finding module files,
importing them, etc to PluginManager. BasePluginManager
can deal with adding a list of imported modules. Makes
testing slightly easier.

Added some notes about additional testing needed.