Functional Bilevel Optimization for Machine Learning