Fixing up a lot of issues with bounding shapes

Various different shapes are used by various different components, so
I've made a singular shapeData object held by every Gameobject, which
can have it's data passed along into whatever component to create
whatever shapes they need to use.