ISystem implementation

This implements a basics ISystem, in its current state it is simply a way to handle the Components one system contains without having to reimplement it in every System. Furthermore there are some changes to IComponent adding a ComponentID to this class. Currently the ComponentID is a string, thought it could be changed into hash-function calulated at compile-time later on by changing SET_COMPONENT_ID(ID).