Changed Testing Structure

Switched from using a classloader to a java agent. This is because for
reasons unfathomable to me the classloader wasn't actually loading the
transformed classes. This fixes that problem.

However, the java agent will need to be packaged into a jar and added as
a command line argument along the lines of "-javaagent:nameOfJar.jar".

This will likely be added as an automatic build option to gradle in the
future.
Re-added the method hook transformer

It is applicable to future changes, so it has been brought back.

This is exactly the same MethodHookBefore as was removed in an earlier
commit when all unused files were removed.