Merging the unate-propagator branch into the trunk. This is a big update so expect...