Fix search log when using skills

In case of we pick a sub-optimal move be
sure to print this, and not the best one
on seach log file.

Bug spotted by Guenther Demetz.

No functional change.
Fix a typo

No functional change.
Fix incorrect 'ss' pointer in early stop check

The exclusion search used to verify one move is much
better than other shall be called with 'ss' and not
'ss+1'

No functional change.
Introduce Cut/All node definitions

Follow Don Dailey definition of cut/all node:

"If the previous node was a cut node, we consider this an ALL node.
The only exception is for PV nodes which are a special case of ALL nodes.
In the PVS framework, the first zero width window searched from a PV
node is by our definition a CUT node and if you have to do a re-search
then it is suddenly promoted to a PV nodes (as per PVS search) and only
then can the cut and all nodes swap positions. In other words, these
internal search failures can force the status of every node in the subtree
to swap if it propagates back to the last PV nodes."

http://talkchess.com/forum/viewtopic.php?topic_view=threads&p=519741&t=47577

With this definition we have an hit rate higher than 90% on:

    if (!PvNode && depth > 4 * ONE_PLY)
        dbg_hit_on_c(cutNode, (bestValue >= beta));

And an hit rate of just 28% on:

    if (!PvNode && depth > 4 * ONE_PLY)
        dbg_hit_on_c(!cutNode, (bestValue >= beta));

No functional change.
Use alpha instead of beta-1

It is more directly related to a fail-low.

No functional change.
Retire psq_delta()

No functional change.
Introduce operator~(Piece c)

Small syntactic sugar to reverse piece color.

No functional change.
More consistent 'piece' variable naming

No functional change.
Convert pieceSquareTable to 3 dimensions

No functional change.
Zobrist::init() should be Position::init()

No functional change.
Don't need to expose namespace Zobrist

It can be local to position.cpp

No functional change.
Fix again early stop ss pointer

Fix was wrong becuase search starts from ss+1,
code is a bit tricky here, so rewrite in a way
to be more easy to read and understand.

Spotted by Eelco.

No functional change.
Merge from 'master'

bench: 4931544
Reduce less cut nodes

bench: 4638648
Reduce less ALL nodes

bench: 5298462
Reduce more CUT nodes

bench: 5108393
Reduce more ALL nodes

bench: 4259553
Reduce 50% more CUT nodes

bench: 3915893
Reduce 25% more CUT nodes

bench: 4408672
Reduce CUT node if parent node is reduced

It measn we are doing a LMR search at parent ALL node.

bench: 4687419