Fix a Bug, modeling_bert.py, erroneosly switched BCE and CrossEntropy
_In BertForSequenceClassification when detecting what type of loss to use, based on self.config.problem_type  BCEWithLogitsLoss and CrossEntropyLoss erroneosly switched. It works correctly in case when self.config.problem_type not defined, because it switched in detection and application code, but if problem_type  correctly defined by model it fail(or if "single_label_classification" selected CrossEntropy works as replacement for BCE obviously without errors). I found it when trying to fine-tune "unitary/toxic-bert" model._

Update:
Sorry i'm incorectly read mulit-label vs multi-class problem. i'm just use this model "unitary/toxic-bert" with removed head to fine-tune multi-class and get errors with multi-label defined loss. :(
## 
@LysandreJik
@LysandreJik Can you please review this PR. And help how to fix torch tests and check_code_quality?