[2.2] - Command-line interface - Pipeline class
Author: thomwolf
Pull request: yes

Adding a `Pipeline` class that encapsulates a `Tokenizer` and a `Model`.

`Pipelines` take python objects as inputs (lists/dict of string/int/float) and output python objects as well (lists/dict of string/int/float).

`Pipelines` can be used to query and train models and should be framework agnostic (default to TF 2.0 if installed, fallback to PyTorch).

ex:
```python
# load/initialize a text classification model from Bert-base-uncased
pipeline = TextClassificationPipeline.from_pretrained('bert-base-uncased')

# Train the text classification model with lists of strings and associated labels
pipeline.fit(list_of_texts, list_of_labels)

# Predict with the trained classification model
# (input: list of strings, output: list of int)
batched_predictions = pipeline(list_of_texts)
```

Also adding a simple CLI based on these pipeline models.

Comments:
# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/1548?src=pr&el=h1) Report
> Merging [#1548](https://codecov.io/gh/huggingface/transformers/pull/1548?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/33adab2b91697b3e78af618a21ab9f1176281165?src=pr&el=desc) will **decrease** coverage by `1.44%`.
> The diff coverage is `44.59%`.

[![Impacted file tree graph](https://codecov.io/gh/huggingface/transformers/pull/1548/graphs/tree.svg?width=650&token=9qOlN6Hb1c&height=150&src=pr)](https://codecov.io/gh/huggingface/transformers/pull/1548?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master    #1548      +/-   ##
==========================================
- Coverage   81.47%   80.03%   -1.45%     
==========================================
  Files         122      128       +6     
  Lines       18342    19325     +983     
==========================================
+ Hits        14945    15467     +522     
- Misses       3397     3858     +461
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/1548?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [transformers/commands/download.py](https://codecov.io/gh/huggingface/transformers/pull/1548/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL2NvbW1hbmRzL2Rvd25sb2FkLnB5) | `0% <0%> (ø)` | |
| [transformers/commands/run.py](https://codecov.io/gh/huggingface/transformers/pull/1548/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL2NvbW1hbmRzL3J1bi5weQ==) | `0% <0%> (ø)` | |
| [transformers/commands/train.py](https://codecov.io/gh/huggingface/transformers/pull/1548/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL2NvbW1hbmRzL3RyYWluLnB5) | `0% <0%> (ø)` | |
| [transformers/commands/convert.py](https://codecov.io/gh/huggingface/transformers/pull/1548/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL2NvbW1hbmRzL2NvbnZlcnQucHk=) | `0% <0%> (ø)` | |
| [transformers/tests/model\_card\_test.py](https://codecov.io/gh/huggingface/transformers/pull/1548/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL3Rlc3RzL21vZGVsX2NhcmRfdGVzdC5weQ==) | `97.5% <100%> (ø)` | :arrow_up: |
| [transformers/data/\_\_init\_\_.py](https://codecov.io/gh/huggingface/transformers/pull/1548/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL2RhdGEvX19pbml0X18ucHk=) | `100% <100%> (ø)` | :arrow_up: |
| [transformers/data/processors/\_\_init\_\_.py](https://codecov.io/gh/huggingface/transformers/pull/1548/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL2RhdGEvcHJvY2Vzc29ycy9fX2luaXRfXy5weQ==) | `100% <100%> (ø)` | :arrow_up: |
| [transformers/modeling\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/1548/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL21vZGVsaW5nX3V0aWxzLnB5) | `93.06% <100%> (+1.37%)` | :arrow_up: |
| [transformers/data/processors/utils.py](https://codecov.io/gh/huggingface/transformers/pull/1548/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL2RhdGEvcHJvY2Vzc29ycy91dGlscy5weQ==) | `19.37% <12.5%> (-25.53%)` | :arrow_down: |
| [transformers/modeling\_tf\_auto.py](https://codecov.io/gh/huggingface/transformers/pull/1548/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL21vZGVsaW5nX3RmX2F1dG8ucHk=) | `32.55% <19.04%> (-5.08%)` | :arrow_down: |
| ... and [34 more](https://codecov.io/gh/huggingface/transformers/pull/1548/diff?src=pr&el=tree-more) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/huggingface/transformers/pull/1548?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/huggingface/transformers/pull/1548?src=pr&el=footer). Last update [33adab2...db0795b](https://codecov.io/gh/huggingface/transformers/pull/1548?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).