Introduce distance() and unify some API

Original work by Lucas.

No functional change.
Assorted code-style triviality

No functional change.
Retire pvMove in search()

Now we can directly replace it with
the definition resulting in simpler
and possibly faster code because
PvNode is evaluated at compile time.

No functional change.
Fix bounds of FutilityMoveCounts

This is a left-over from ONE_PLY == 2.

No functional change.

Resolves #107
Merge with master