Don't split if there are no more available moves

EXPERIMENTAL: it crashes!
Fix the crash..but still hangs
Fix an hang

Suggested by Ronald de Man
Microptimize castling in undo_move()

We don't need to set 'captured' and 'pt' after we
castle back.

No functional change.
Merge default tests in pos_is_ok

No functional change.
Remove "Max Threads per Split Point" UCI option

Experimental patch to verify if drop of nps
in endgames at very long TC is due to this.

Suggested by Ronald de Man.

bench: 7451319
Split also if no slaves are found

Because we test for available slaves before
entering split(), we almost always allocate a
slave, only in the rare case of a race (less
then 2% of cases) this is not true, but to
special case this occurrence is not worth
the added complexity.

bench: 7451319
Merge from master

bench: 7451319
Assign first move also to master

Now that we always split is much easier to
assign the first move also to master,
previously it would have resulted in crashes
when we assign first move but then don't
split anymore due to no available slaves.

bench: 7451319
Fix a crash under MSVC

Using memset on a std::vector is undefined behavior,
so manually init all the data memebers of LimitsType.

Bug intorduced in 41641e3b1eea0038ab6984

No functional change.
Improve main moves loop readibility

Move all the firstMove gimnik to next_move()

No functional change.
No need to check for th in next_move<true>

No functional change.
Merge branch 'master' into split_moves
Merge pull request #2 from mcostalba/split_moves

Split moves