Remove History.h from the solution
Prefetch with the key that the transition table uses
UCI interface changes

Implement all the GUI commands
Provide debug info
Don't send error messages back to standard or unknown commands
Still doesn't ignore unknown starting tokens
Constructor for SplitPoint

Make the SplitPoint members less cryptic
Correctly score enpassant captures

Surprisingly this rare case was not considered
when scoring a capture.

Also take in account that in the promotion case
we gain a new piece (typically a queen) but we
lose the promoting pawn.

These small issues were present since Glaurung times!

Found while browsing DiscoCheck sources

bench: 5400063
Rename prevents_move() to refutes()

Better! From DiscoCheck.

No functional change.
Templetize score_xxx() functions

So to be style-wise aligned with the corresponding
generate() functions.

No functional change.
Be clear about not LMR the ttMove

Currently a ttMove is reduced with ss->reduction = DEPTH_ZERO,
so it is actually not reduced (as it should be), but the
trick works just becuase it happens that ttMove is the first
to be tried and

reduction(depth, 1)

Always returns zero. So explicitly forbid reduction of ttMove
in the LMR condition. This is much clear and self-documented.

No functional change.
Merge remote-tracking branch 'upstream/master'