Refactor BT_criteria.py and add BTD model support

Refactored BT_criteria.py to support both Bradley-Terry (BT) and Bradley-Terry with ties (BTD) models, including new loss functions, model class, and training logic. Added options for test/train split, normalization, and EigenTrust computation. Moved the previous version to BT_criteria_old.py for reference.
