residual connections in multilayer C2 ('add' only)
residual connections in multilayer C2 ('add' only)

Summary:
Residual connections for multilayer RNN encoder/decoder for Caffe2 NMT model. Only supporting 'add' connections (the standard approach, which ves's TF experiments concluded was at least as good as other approaches), and also only implementing for residual_level >= 1 (which also fits our use case).

It is the responsibility of the config to ensure dimension compatibility: each level at and beyond residual_level (in both the encoder and decoder) should have the same number of units, with the exception that a bidirectional initial encoder layer should have half the number of units of the succeeding layer if that next layer is a residual layer.

Differential Revision: D5023160

fbshipit-source-id: f38c1b140638fee78cf3ef7d6b4602dd462484ee

pietern/caffe2,bwasti/caffe2,bwasti/caffe2,davinwang/caffe2,Yangqing/caffe2,pietern/caffe2,pietern/caffe2,bwasti/caffe2,xzturn/caffe2,davinwang/caffe2,sf-wind/caffe2,davinwang/caffe2,sf-wind/caffe2,sf-wind/caffe2,bwasti/caffe2,xzturn/caffe2,davinwang/caffe2,pietern/caffe2,xzturn/caffe2,Yangqing/caffe2,Yangqing/caffe2,pietern/caffe2,xzturn/caffe2,sf-wind/caffe2,caffe2/caffe2,davinwang/caffe2,Yangqing/caffe2,bwasti/caffe2,sf-wind/caffe2,xzturn/caffe2,Yangqing/caffe2