Trainer._remove_unused_columns() returns None
## Environment info
- `transformers` version: 4.6.0.dev0
- Platform: Linux-4.15.0-134-generic-x86_64-with-glibc2.10
- Python version: 3.8.5
- PyTorch version (GPU?): 1.8.1 (False)
- Tensorflow version (GPU?): 2.4.0 (False)
- Using GPU in script?: No
- Using distributed or parallel set-up in script?: No

### Who can help
@sgugger, @LysandreJik

## Information

`Trainer._remove_unused_columns()` returns None in case `args.remove_unused_columns` is `False`, instead of returning the given dataset.
Related to #11343.

Model I am using (Bert, XLNet ...): BERT

The problem arises when using:
* [x] the official example scripts: (give details below) run_mlm/glue/...
* [ ] my own modified scripts: (give details below)

## To reproduce

Steps to reproduce the behavior:

1. Set `TrainingArguments.remove_unused_columns=False`
2. Train/eval/test your model using `Trainer`
3. The dataset would be None, and so the following exception would raise:

```
Traceback (most recent call last):
  ...
    train_result = trainer.train(resume_from_checkpoint=checkpoint)
  File "/home/guyrosin/src/transformers/src/transformers/trainer.py", line 814, in num_examples
    self.num_examples(train_dataloader) if train_dataset_is_sized else total_train_batch_size * args.max_steps
  File "/home/guyrosin/src/transformers/src/transformers/trainer.py", line 814, in num_examples
self.num_examples(train_dataloader) if train_dataset_is_sized else total_train_batch_size * args.max_steps
  File "/home/guyrosin/src/transformers/src/transformers/trainer.py", line 814, in num_examples
    return len(dataloader.dataset)
TypeError: object of type 'NoneType' has no len()
```

## Expected behavior

`Trainer._remove_unused_columns()` should always return a dataset.
Thank you so much for flagging! This should be fixed by the PR above.