Fix GroovyShell class loading leak

This usage of GroovyShell made every evaluate() call generate a new Class.
This exhausted PermGen with classes that cannot be unloaded, since GroovyShell
was still references and its loaded/generated classes were references as well.

This patch uses parse, instead of evaluate, to generate a class only once and
then reuse it when called again with the same name.