core: add Board.StringIndex with tests, fix MoveString bug