translator: fix the finding of free lisp vars in DO forms
There have been some bugs here:
* Go tags were not skipped.
* If a var bound by DO had the same name as a var used in any of
the init forms, then that var in the init form was not found
to be free.
* If a bound var specification was a symbol (instead of a list
consisting of a symbol and optional init and step forms) then
a lisp error would occur while searching for free lisp vars.
While here, add and reword some comments.
No problems with the test suite or share test suite.
rtest_translator runs as expected.