Conversion script to export transformers models to ONNX IR.
This PR adds conversion script to export our models to ONNX IR. 

Plan is to support both PyTorch and TensorFlow: 

- [x] PyTorch
- [x] TensorFlow

TensorFlow currently blocked because of an issue in the conversion script provided by ONNX (seems fixed on master : https://github.com/onnx/tensorflow-onnx/issues/876)

_PS: PR recreated because the first one got corrupted (#4176)._
# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/4253?src=pr&el=h1) Report
> Merging [#4253](https://codecov.io/gh/huggingface/transformers/pull/4253?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/c558761ad11beba5e70dd505e1c97bdc4eb6ee9c&el=desc) will **not change** coverage.
> The diff coverage is `n/a`.

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

```diff
@@           Coverage Diff           @@
##           master    #4253   +/-   ##
=======================================
  Coverage   78.16%   78.16%           
=======================================
  Files         120      120           
  Lines       20005    20005           
=======================================
  Hits        15637    15637           
  Misses       4368     4368           
```



------

[Continue to review full report at Codecov](https://codecov.io/gh/huggingface/transformers/pull/4253?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/4253?src=pr&el=footer). Last update [c558761...c558761](https://codecov.io/gh/huggingface/transformers/pull/4253?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
<|||||>For the notebook:
```
  "environ[\"OMP_NUM_THREADS\"] = str(cpu_count(logical=True))\n",
  "environ[\"OMP_WAIT_POLICY\"] = 'ACTIVE'
```
  It is better to place the environ setting before importing onnxruntime. I used to find that placing these settings after importing onnxruntime does not work.


```
   options.execution_mode = ExecutionMode.ORT_SEQUENTIAL 
```
ORT_SEQUENTIAL is the default value so the line is optional.<|||||>@tianleiwu I agree with your regarding optional argument, especially GPT2 and the past context which might provide a significant boost in performance.

For the scope of this release, I decided to not provide support for this, as it would have required much more thinking / changes in the library. 

We might have a look at possible solutions for this in short/mid term 👍 