[tests|tokenizers] Refactoring pipelines test backbone - Small tokenizers improvements - General tests speedups
Author: thomwolf
Pull request: yes

# What does this PR do?

This PR refactor the pipeline tests to split them in smaller parts more easy to iterate on.

There is now:
- one common backbone for testing pipelines in `test_pipeline_common.py` with two Mixin that can be used depending on the test: `CustomInputPipelineCommonMixin` and `MonoInputPipelineCommonMixin`. The later provide a standard `_test_pipeline(nlp: Pipeline)` method while the former require to write a custom test pipeline method. 
- one test file per specific pipeline inheriting fro the above backbone.

Small fixes:
- the special token ids can now be set in the tokenizers
- added `convert_tokens_to_string(List[str]) -> str` to the Fast Tokenizers
- added a `tokenizer.vocab` property in Fast Tokenizers (alias to `tokenizer.get_vocab()`)
- `tokenizer.decode()` now accept also PyTorch, TensorFlow, Numpy Tensors/arrays as input
- gathered a few docstring in the parent class for tokenizers
- also fix the Dialog Pipeline #5516

## Before submitting
- [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
- [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/master/CONTRIBUTING.md#start-contributing-pull-requests),
      Pull Request section?
- [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link
      to the it if that's the case.
- [ ] Did you make sure to update the documentation with your changes? Here are the
      [documentation guidelines](https://github.com/huggingface/transformers/tree/master/docs), and
      [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/master/docs#writing-source-documentation).
- [ ] Did you write any new necessary tests?


## Who can review?

Anyone in the community is free to review the PR once the tests have passed. Feel free to tag
members/contributors which may be interested in your PR.

<!-- Your PR will be replied to more quickly if you can figure out the right person to tag with @

 If you know how to use git blame, that is the easiest way, otherwise, here is a rough guide of **who to tag**.
 Please tag fewer than 3 people.

 albert, bert, XLM: @LysandreJik
 GPT2: @LysandreJik, @patrickvonplaten
 tokenizers: @mfuntowicz
 Trainer: @sgugger
 Benchmarks: @patrickvonplaten
 Model Cards: @julien-c
 Translation: @sshleifer
 Summarization: @sshleifer
 examples/distillation: @VictorSanh
 nlp datasets: [different repo](https://github.com/huggingface/nlp)
 rust tokenizers: [different repo](https://github.com/huggingface/tokenizers)
 Text Generation: @patrickvonplaten, @TevenLeScao
 Blenderbot, Bart, Marian, Pegasus: @sshleifer
 T5: @patrickvonplaten
 Rag: @patrickvonplaten, @lhoestq
 EncoderDecoder: @patrickvonplaten
 Longformer, Reformer: @patrickvonplaten
 TransfoXL, XLNet: @TevenLeScao, @patrickvonplaten
 examples/seq2seq: @sshleifer
 examples/bert-loses-patience: @JetRunner
 tensorflow: @jplu
 examples/token-classification: @stefan-it
 documentation: @sgugger
 -->


Comments:
Tagging a few people working on the pipelines and @sshleifer because I've added additional imports of TF Bart in `modeling_tf_auto` to make the pipelines happy.

Ok. great, thanks @sgugger and @sshleifer.

I took the occasion to speed up the CI test suite (cc @stas00) by:
- spinning out the pipeline test in a separate job
- reducing the dual framework (tf+pt) tests overhead by focusing them on the PT+TF cross interactions (adding new tests at the same time) and removing the double testing with the tf and pytorch standalone tests.

Ready to merge imo.

Whoah! this is amazing - the slowest job is now the fastest! Thank you!!!

I think there is only one potential issue with it - the half-baked until now codecov report is now completely useless since it no longer covers all tests so just as well remove it completely.

@stas00 Did just that https://github.com/huggingface/transformers/commit/829b9f8cc321aa28396e6203e0f21eed26b132f7

Removed codecov from the repo as well.

It's still there ;)
```
.circleci/config.yml:            - run: pip install codecov pytest-cov
.circleci/config.yml:            - run: RUN_PT_TF_CROSS_TESTS=1 python -m pytest -n 8 --dist=loadfile -rA -s ./tests/ -m is_pt_tf_cross_test --cov --durations=0 | tee output.txt
.circleci/config.yml:            - run: codecov
```