Leveraging State-Based User Preferences in Context-Aware Reconfigurations for Self-Adaptive Systems