Submodular Optimization and Machine Learning: Theoretical Results, Unifying and Scalable Algorithms, and Applications