More refactoring of the asset code; broke out some shader asset stuff.