revise autoloader for non-OC classes to be PSR-0 compliant and more robust

The existing design of the autoloader is based around the particular
needs of OC classes and doesn't work very well for vendor classes
that OC bundles but which may be un-bundled by distributors. This
almost splits the autoloader in two. It acts as before for OC classes
(starting with OC or Test). For all other classes, there is a new
function (findVendorClass) which simply returns the PSR-0 style class
path, and the load function now acts much like a typical PSR-0ish
autoloader. First it tries pre-pending the registered prefix for the
class - if there is one - to the class path and resolving the result
via stream_resolve_include_path. If that doesn't work, it falls back
to just trying the class path, which will find any distributor copies
stored in PSR-0 compliant locations relative to the include path.

As written, this implementation is an 'aggressive' one, it will run
whenever a class is not found and the fallback function may find a
systemwide copy of the class. If we would prefer a more conservative
autoloader which only tries to load registered classes, it would be
pretty simple to adjust this implementation to do that.