Cooperative SGD: A Unified Framework for the Design and Analysis of Local-Update SGD Algorithms