LongPO: Long Context Self-Evolution of Large Language Models through Short-to-Long Preference Optimization