Rename moduleList to loadedModules and move it into ModuleHandler

Previously, it was just a global variable. Better to move it inside the
ModuleHandler scope to prevent collisions.
automatic module registration

doesn't work yet
Restructure the module handling

This:
 - Puts all new classes in the pinoccio namespace and removes any
   "Pinoccio" prefixes on class names.
 - Renames Module::setup() to load()
 - Makes sure that each module is always instantiated exactly once (big
   memory allocations should happen in the load method)
 - Removes the ModuleInfo classes, since an instance of the Module
   itself is now always available
 - misc other cleanups