Fixed the dangling pointer bug
? shader compiler was using a dynamic array, which when resized would move its contents so shaderdata pointers held by loader would pointer to freed memory
= switched data structure in shader compiler to a linked list
+ added non-const front and back for linked list