PAL: Pluralistic Alignment Framework for Learning from Heterogeneous Preferences