Handle KBPKP better, and basic endgame unit tests

Bench remains the same, but after the recent critter-stockfish TCEC game, where stockfish blundered into a drawn KBPKP position, it seems worth better understanding this endgame.  Probably rare, but it turned a 1-0 into 0.5 for sure in this game.

At the same time, I added a super basic test infrastructure, to make it easier to write these endgame functions.

Thoughts?