Changed `Component` allocation to use a memory pool class for storage as opposed to solely using a `std::vector`, as per the dicussion on the previous commit.