Connected Vehicles: Applications and Communication Challenges