switched GameObjectCollection to using an std::list to allow more efficient object removal
added a method to prune dead objects out of GameObjectCollection