Synchronization in Complex Networks of Nonlinear Dynamical Systems