Cleaner entity component architecture. part 5

Also added in an animated background which renders behind the node graph.
This is to test the framework for extensibility.

The GlideCanvas and GlidePipeline need to be optimized for rendering
our gliders in the background behind the node graph.

As part of this optimization we have already modified the vertex
attributes to include an id (integer).

This id is to be used for animating or performing other special
behaviors which can vary per shape or comp shape.

We will also renaming our Hub and Spoke objects to
Entity and Component object to reflect standard terminology.

We have also removed the ability for a Hub/Entity to be able to store
multiple Spokes/Components of the same interface. Having multiple
spokes tended to lead to bugs because you had always remember the
index of the spoke you wanted.