Fix GroovyShell class loading leak

This usage of GroovyShell made every evaluate() call generate a new Class.
This exausted 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. It is also a
re-implementation of the fix in 1.2.x branch, because now GroovyCommandManager
is session aware instead of CRaSHSession (in 1.2.x) which is the session
itself.