Adaptive Transit Signal Priority based on Reinforcement Learning, Connected Vehicles and Software in the Loop Simulation