More SEE based and 'improving' based futility pruning

This started out as a try to fix stalemate detection in qsearch by reintroducing enoughMaterial, but I'm leaving that term out here. Improving based futility also in qsearch but I thought this was a bug. However, bench is clearly lowest and my results a bit better so far with this reverse 'improving'. My tests were with the fianchetto eval but that is left out here. I am anticipating that we should choose Tom's definition of 'improving'. Finally, updating bestValue in SEE based pruning is still completely untested, it may be wrong but it just seems a bit of an inconsistency not to do that.