Re-order XLNet attention head outputs for better perf
Significant performance boost over the original orderings. On an already somewhat optimised branch this gave me > 2x end-to-end throughput on a squad xlnet fine-tuning task (batch 8, seq-length 512, fp16, amp opt level = O2)

Justifying this is the contraction 
```
attn_vec = torch.einsum('bnij,jbnd->ibnd', attn_prob, v_head_h)
```

Given how `torch.einsum` and tensor contractions work, this is a batched gemm with batch dimension `bn` and gemm dimension `(i x j) * (j x d)`. Moving `bn` to be the first dimensions for the first input eliminates a sizable transpose that would otherwise need to be done.
Remaining CI failures are valid, they look to assume a `ijbn` ordering for all attention-based things, which no longer holds.

I'm happy to add additional functionality to get these tests passing, but I'd like input on how you'd like that done (I'd lean to passing an optional `expected_attention_size` which is `[key_len, batch_size, num_heads]` by default, and checking that instead of assembling the expected sizes on-the-fly in the test(s))<|||||>Please ignore above :) test errors were due to a missed transpose on my part (if attention outputs are returned, they need to be transposed from `bnij` to `ijbn` ordering to keep the interface from attention <-> the rest of the code the same as before.)<|||||>This is a great work, thanks a lot @slayton58.

Can you confirm this has no noticeable impact on downstream performances (in terms of evaluation metrics), for instance on your SQuAD tests?<|||||>@thomwolf I have been testing against the config from https://github.com/huggingface/transformers/issues/947#issue-476001056 with seq-length=512, and obtained a consistent f1 score of 83 across both `ijbn` and `bnij` attention head orderings (also across fp32/fp16 O1/fp16 O2)

When there's a PR issued for the changes in https://github.com/huggingface/transformers/issues/947#issuecomment-535989890 I'd be happy to go ahead and repro those numbers with this change if you'd like the additional security.<|||||>Awesome, ok let's merge this then.