Robust Routing in Urban Public Transportation: How to Find Reliable Journeys Based on Past Observations