Split() clean up locking

Only unlock and relock when idle_loop() is actually called

No functional change
Remove strange use of the ternary operator

Note that we read shared data without lock
protection, so code is theoretically prone to
torn reads. But, first splitPoint pointer
never changes, and alpha is of integer type so
it is read in a single DWORD access.

No functional change.
Rename sp to splitPoint

Still keep 'sp' name when used as local
variable with limited scope.

From Jundery.

No functional change.
Store moves sent with "position" UCI command

Store all the game moves until current position.

This will be used by next patch.

No functional change.
Fix easy re-capture case

We detect an easy move as a recapture with an
high margin on the second best move.

Unfortunatly the recapture detection is broken
becuase we identify as a recapture any move that
follows an opponent's previous capture !

This patch fix the logic to correctly detect a
real re-capture.

No functional change.
Merge branch 'master' of https://github.com/mcostalba/Stockfish