Residual Connections and Normalization Can Provably Prevent Oversmoothing in GNNs