Improved Entity class implementation.

Each Entity now stores a vector of shared_ptr<Component> instread of normal pointers to heap allocated data. This ensures that the memory will be freed.