core: add iterator and playout mechanisms, remove LegalMoveSlice
remove error from GenMove return value
random -> unirand: a more generic approach