Refactor

Merging in the new system that doesn't rely on class types to store components... I'm not 100% happy with it though, as systems have no way of working on "grouped" component sets (i.e. it will just have random components thrown at it in no particular order).