The Data Calculator: Data Structure Design and Cost Synthesis from First Principles and Learned Cost Models