Module re-working

Now implicitly calls _load()
Remove group concept, modules shouldn't care what group they're in
Make validity check static, it doesn't need any special knowledge
Group dirs always stored in fixed state
pathFixup fixes for falsey/non-string values

plus tests
Restructred main class to simplify things

plus tests