DriveCoT: Integrating Chain-of-Thought Reasoning with End-to-End Driving