Less assert()-s in PropBy

This is called often, don't assert(), it makes it slower
Making 0.5 out of 1.0/2.0
Tracking depth of propagation during propFull(), allowing for a faster hyper-bin

This is *way* better than the old one. The only problem is that updating
depth of changed varData[].reason  is impossible, so it's less complete.
In case there is an update, we may fail to do hyper-bin later in the
same propgation in some cases. Oh well, nothing is perfect.