Fixed typo in Cuboid#set
Enforce parameter count in .extract methods for Vector like parameters
CacheBase.branch now calls #load instead of defining a monsterous function
Added linked lists

This is done using a LinkNode.
A LinkNode is a wrapper around any object, and allows the linkage of other LinkNodes to formed a linked list.

LinkNodes are enumerable, and can be looped.
```ruby
LinkNode#loop!
```
Beware, most enumerable methods will continue to loop if enumerating a looped linked list.

The fastest method for creating a linked list is to use Array#to_linked_list

```ruby
[1, 2, 3].to_linked_list
```
Added Renderable mixin
Tilemap#view bevaiour change

Tilemap#view originally behaved liked a data selection, this has been changed
to restricting the render space instead.

Use Tilemap#selection for the original functinality
Added Eventable#allow_event?
Eventable will now initialize automatically on the first #on call, if it hasn't been initialized
Added DataModel::Metal#post_init

This is called after the model has fully initialized
Sprite and Spritesheet will now error on missing files

Indexed png loading has not been fixed.
Changed textbox events as suggested by archSeer