Natural Language Processing for the Legal Domain: A Survey of Tasks, Datasets, Models, and Challenges