book update
add unit test for eval symmetry
Hash table changes:

Remove eval cache and lazy eval from scoring module
(+cleanup and reformat this module).

Use hash table in quiescence as well as regular search. In the
q-search only distinguish depths with check and depths without
(like Stockfish).

Force hash table to be power of 2 in size.

Store static evals in hash table (use part of stored hash code field
for this). Note: this entails putting the side to move bit in the
hi bit of the hashcode, not the low bit. Consequently, hash codes
for positions have changed.

Re-generate the ECO mapping file because of hash code changes (and
add a couple more entries).

In the search, if a transposition table entry is found, use it if
possible to refine the static eval for pruning decisions (like
Stockfish, Protector, etc.).

Consolidate the two q-search routines.

Make piece values typed constants, not defines.