Factor out EvalInfo calculations from evaluate_pieces() so that
we are now call order independant.  This opens the door for
excluding attacked & undefended squares from mobility area.
Thanks to Gary & joergoster!  Take 2
bench: 7716978