Difficulty-Controllable Multiple-Choice Question Generation Using Large Language Models and Direct Preference Optimization