changed GroovyActionTask and TargetDelegate.perform so that a perform block in a target in a lenskit evaluation will behave like other tasks, returning a value that can be the value of the target if the perfom block is the last task in the target