Shadow resource subclasses should have app resourceloader

Subclasses of Resources also need to have their resourceLoader bound, but these could be created anywhere in the system, so we don't get to bind it in the way that we do setting up the application resources.

Modify ShadowResources to obtain the application resource loader itself by default, and protect all references to it through the accessor method. Only System Resources requires having its resource loader explicitly set.