Big update of how bootstrap and Module class load modules

- changed bootstrap to load a preliminary list needed for initialization, then
leave the rest up to the Module class when Module::load_modules() is called,
which includes unit test and third-party modules.
- changed Module class to consider two special modules, set by $_first_module
and $_last_module variables (purifier and gallery, respectively).
- revised Module::_add_to_path() and Module::_remove_from_path() for K3.
- moved module loading in bootstrap before route definition so modules could
override our defaults.
- fixed/added some comments.