This gives more control to the application about how shaders are loaded/unloaded, and it fits in much more nicely with PPV2's resources. Shaders are currently just serialized as part of the scene component, which isn't the optimal solution yet.