LMDrive: Closed-Loop End-to-End Driving with Large Language Models