New rendering system to support multi-layer sprites!

Rendering System

Now, individual sprite components support multiple layers, with different properties on each layer such as tint. An optional “render” component can be added to entities, which can contain various bits of information, or a callback to dynamically return that information. The data can be an array of objects, each object representing a sprite layer - or shorthand using strings.

This results in being able to implement more complicated sprite states with different colors, such as color walls. Added new color wall sprites and added support for adjusting saturation used in tints.

Still currently experimenting with the color palette, saturation, value, new sprites, and the potential player snake. Always looking for ways to simplify mechanics, like potentially removing the 2 special wall types (hole and laser).