A Unifying Framework for Online Optimization with Long-Term Constraints