Avoid 'double assigments' tricks

fix from Marco's repo.

I was doing some modifications in bitboard, and spent some painful debugging time, thanks to these clever tricks. I dissectred the problem to narrow it down to a simple commit, and Marco saved my day and found the problem in this commit :+1: 

The reason is that if you remove or displace initialization of BSFTable (which is only useful on PPC compiles anyway), you will get a very subtile bug. By doing so you remove the initialization of `SquaresBB[]`, which causes `sliding_attack()` to always return `0`, due to `operator |= (bitboard, square)`, which will cause `masks[s] = 0` in `init_magics()`,  and an infinite loop here:

    do
        magics[s] = rk.magic_rand<Bitboard>(booster);
    while (popcount<Max15>((magics[s] * masks[s]) >> 56) < 6);

Also the loop was indented in an unstandard way which caused me a little WTF moment when looking at this line in isolation:

    while (popcount<Max15>((magics[s] * masks[s]) >> 56) < 6);

which seems equivalent to an assert!