Fix for batch file misbehaving with parenthetical arguments

This fixes an issue where parentheses in arguments were interpreted by `cmd` as closing IF blocks.  In these commits, we have a kind of short-circuiting (for lack of a better term), by moving the simpler Elixir arguments first in the loop.  I've also changed the conditions to check against an empty string (that's what the hideous `""""` garbage is) rather than just check if the string changed.  This mainly avoids `--erl` being interpreted from `-e`, since `-e` is a substring of `--erl`.

It's basically witchcraft that I can't quite explain, but this does fix the test in question (Kernel.CLI.ErrorTest "properly format errors") and causes no other failures.