Fix legal_moves not considering the special property of eights. Move some code from legal_moves into the Move class.