run_squad hangs for small max_seq_length
## 🐛 Bug

I am experimenting with minimal examples to understand how sequences are generated, setting `max_seq_length` very low to trigger document chunking, and I hit this bug:

When `max_seq_length` is smaller than the query, `max_tokens_for_doc` becomes negative causing an infinite loop. 

https://github.com/huggingface/transformers/blob/f3386d938348628c91457fc7d8650c223317a053/examples/utils_squad.py#L241-L258

Obviously having `max_seq_length` smaller than the query isn't very useful, and I should be setting `max_query_length`, But it would still be nice to have an assertion catch this.

### Steps to reproduce
1. `rm $SQUAD_DIR/cached*`
2. train with `--max_seq_length 16`
```
python examples/run_squad.py \
    --model_type bert \
    --model_name_or_path bert-base-uncased \
    --do_lower_case \
    --do_train \
    --train_file $SQUAD_DIR/train-v1.1.json \
    --predict_file $SQUAD_DIR/dev-v1.1.json \
    --per_gpu_train_batch_size 12 \
    --learning_rate 3e-5 \
    --num_train_epochs 2.0 \
    --max_seq_length 16 \
    --doc_stride 8 \
    --output_dir /tmp/squad_seq_len_bug
```

Great, thanks for letting us know!