dropout for C2 multilayer
dropout for C2 multilayer

Summary:
Incorporate arbitrary dropout for encoder and decoder layers for Caffe2 NMT models using current configuration. This involves separate output processing (_prepare_output() and _prepare_output_sequence()) for the final layer in a MultiRNNCell.

Switching to using the newly introduced forward_only switch for RNN cells revealed an unrelated bug in our NetGradientChecker test, which urikz is investigating.

Reviewed By: salexspb

Differential Revision: D5031964

fbshipit-source-id: 19b49607d551aa3e2140041ef4e585f128c8f178

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