Exact Diffusion for Distributed Optimization and Learning—Part I: Algorithm Development | Synapse