Make Trainer evaluation handle dynamic seq_length
# What does this PR do?

In token classification problems or language modeling predictions, logits and labels are usually of shape `[batch_size, seq_length, ...]` and if one uses dynamic padding, the `seq_length` might change from batch to batch. This made the evaluate and predict methods of the `Trainer` fail, because the Trainer wants to concatenate all predictions in one array.

This PR fixes this, by potentially padding up to the maximum seq length when needed, using the -100 pad index (since it's the marker for ignored labels in PyTorch). It add tests that were failing before the PR, to check the fix actually solves the issue.

