Agent-based models in urban transportation: review, challenges, and opportunities