Differential Privacy for Functions and Functional Data