Online Optimization For Machine Learning: Parallelism, Adaptivity, And Model Selection