Core/Battlegrounds: Fix invalidated iterator crash

Partially revert e1bee86ee6f5c3ab7b1da6d1b54c98c2851f11ec and restore 9ba3d07fc22864daa51b2faf327ac3336569e463 to store battleground queues as std::list instead of std::deque because deque::erase() invalidates all iterators.