Add new SQUAD example
# What does this PR do?

This PR adds a new example for SQUAD (v1 and v2) for simple models (e.g., not the XLNet/XLM more complex version, another example will follow for those) using the datasets library and all the features of the fast tokenizer to simplify considerably the preprocessing and the post-processing.

I've compared the new version to the old one and did not find major differences when:
- fine-tuning a model on SQUAD v1 or v2 with the old and new script
- evaluation an existing model fine-tuned on SQUAD v1 or v2 with the old and new script

The only difference I found was when evaluating an existing model fine-tuned on SQUAD v1 and evaluating it on SQUAD v2. For those, the new script is a bit less good at predicting the null answers (but those models have crappy results on SQUAD v2 anyway, they are just a bit more crappy).

Further plans are:
- add a subclass of Trainer for QA so that the evaluation is done directly with `trainer.evaluate()`
- add a script for XLNet/XLM
I'd like the new examples scripts to stay fairly focused on one problem (at the cost of potentially have some duplicate codes) so they're easy to understand (and tweak) by users. We don't support any kind of datasets either (if your QA dataset has fields with names slightly different than SQUAD for instance), users are supposed to adapt the relevant lines in the code to their needs.

So with that in mind, I'd definitely prefer a separate script :-)