Does bart need to cache prev_key_padding_mask?
This is only be used for self attention, presumably to remember to ignore if the last token generated was a pad. But if the last token generated was a pad, we are done with the hypothesis anyways so may not need this. 
If this is unnec it will save 5-10 lines of annoying stuff.