Allow ReferenceItems to release their references
Originally, ReferenceItems cached shared pointers to resources and components. The use of shared pointers resulted in the undesired behavior of resources outliving their presence in the resource manager. This MR adds an option to ReferenceItems (disabled by default) to use shared pointers to store their references. By default, ReferenceItems now use weak pointers, allowing the referenced resource/component to go out of scope.
Showing with 495 additions and 91 deletions