rebase from perft_cpu

copy over code to make use of a move list when generating moves (not
hooked up to gpu code path yet).