SecAlign: Defending Against Prompt Injection with Preference Optimization