Bug fix in interpreter to not execute new commands ($ ! 0-1a-z) if m_ExitLoop = true. Previously, a bug existed where if a loop was being exited (and all instructions before the closing bracket being skipped) the code would still execute ($ ! 0-1a-z) while trying to exit the loop! The AI still took advantage of this, but it caused problems when trying to re-use those functions. Oops. This is now fixed.
Example case that expresses bug:

>>>>,><$<[+[.,,,,,+,,!,+a@,>,-[-<+>]<+.$@

In the above program, the final . correctly prints the input * 2. However, if you change this to (moving the . from the function to the main program instead):

>>>>,><$<[+[.,,,,,+,,!,+a.@,>,-[-<+>]<+$@

This no longer prints the result because a loop is in the process of being exited, even though the function 'a' was called (taking advantage of the bug). The . command correctly ignores executing because m_ExitLoop = true, but the function calls did not check this boolean.