Split caching from autoloader class, also only load one path per class

@icewind1991 @guruz @ringmaster @karlitschek @DeepDiver1975 @bantu