NMT timing and tokenizer stats utils
This PR adds three features:
1. A utility to collect stats of tokenization of raw text given a tokenizer (i.e., regarding sentences length)
2. NMT inference script supports detailed timing of encoder/decoder/sampler (i.e., timing per sentence length).
3. A plotting script to visualize the detailed timing.

# Summary 

## NMT Detailed Timing

By adding the flag `--write_timing` (as shown below), output file with `.timing.json` suffix will be created with a dictionary of lists that contains `encoder` [sec], `sampler` [sec], `mean_src_length` [tokens/batch], and `mean_tgt_length` [tokens/batch] keys.

Command:

```
python3 -- examples/nlp/machine_translation/nmt_transformer_infer.py ... --write_timing --batch_size=1
```

**NOTE:** a `batch_size=1` is recommended when measuring timing.

Plots:

The command
```
python3 -- examples/nlp/machine_translation/plot_detailed_timing.py FILENAME.timing.json
```
Will create 3 `FILENAME.timing.*.png` files, shown below.

![newstest2013-es-en clean tok ref timing encoder-src_len](https://user-images.githubusercontent.com/7453913/138139749-1870236e-2414-4201-a5f2-abee6082f7fc.png)
![newstest2013-es-en clean tok ref timing sampler-src_len](https://user-images.githubusercontent.com/7453913/138139755-139bd640-8c96-4ce0-b5a8-1d53556e21e0.png)
![newstest2013-es-en clean tok ref timing sampler-tgt_len](https://user-images.githubusercontent.com/7453913/138139757-dc8e1e7b-a924-47a6-86b9-ebfff6ff7129.png)

## Tokenized Data Stats

See below example for collecting all stats in `stats/` directory:

```
python3 -- examples/nlp/machine_translation/collect_tokenizer_dataset_stats.py \
  --tokenizer_library byte-level \
  --tokenizer_model "" \
  --max_lines 10000000 \
  --out_dir stats \
  ./nmtset1.1-en-de/train.dedup.de 
```

terminal output:
```
stats = 
{'samples': 10000000, 'mean': 105.3137831, 'stdev': 112.8504785619722, 'min': 8.0, 'max': 1157.0, 'median': 69.0}
```

Histogram (per sentence length in byte-level tokens):
![lengths_hist](https://user-images.githubusercontent.com/7453913/137540936-e40dfe7a-bd5c-4380-b1aa-bee222519f84.png)


