Document g_ motion on website.
Label SearchResultMotion instances as REPEAT

Having "FORWARD" and "BACKWARD" constants is confusing because FORWARD
can actually move backward if the last search is backwards. Name them
REPEAT and REPEAT_REVERSED to make it more obvious that they use the
search direction of the last active search.
Reset selection fix, search returns to last mode.

Make sure that any visual selection is cleared after command line mode
exits by running the command in normal mode, then nulling the selection.

Since that breaks Search mode, move the exit code to a different
function and override it when in search mode. Search mode can now also
exit back to the visual mode you were in before starting search, just
like Vim would do it if you press <Escape>. This still has a problem on
GTK as pressing Escape will move back to Normal mode, but it should work
in Windows now.

Fixes #554.

Work for #508.
Execute commands directly from visual mode.

Since search mode returns to the last mode, it is no use to switch to
normal mode only to execute a "go to visual mode" command.

The advantage is that we can immediately fix the caret type.
Handle each IWorkbenchInstance only once.

Certain IBM editors seem to point back to a parent editor. Keep a list
of editor references so that we know if we already handled a given
instance, thus avoiding an endless recursion when navigating child
editors.
Remove commented out logs, convert indent to space