renderer: Implement an image source system

Includes and image source implementation and
dedicates cache for 3 image source objects
in every entity. This cache is then used by
the renderer to determine whether the image
source is a video or a static texture and
to then handle it appropriately.