Add platform optimization flag + profile-guided optimization
Minor fixes
Merge the 3 propagations functions into one
Merge the 3 single-solution checking functions