Cognitive Radio Vehicular Ad Hoc Networks: Design, Implementation, and Future Challenges