Okay, trying this again

taking ringmaster's advice and creating a new branch, that should be
cut from current master this time. Dropping in my changes, and leaving
code comments in, whether I think they are useful or not :)

This is a proposed fix for #481
Move main autoload to Class based syntax
Autoloader method must be declared static.
A bit more DRY, same filter, explicit override of core classes.
Merge branch '481'