A Journey from Vehicular Networks to Vehicular Clouds and Vehicular Social Networks: Solutions and Challenges