adding EndToEnd test, fixes #149

There doesn't seem to be a nice way to run arbitrary Java main methods,
mostly because of the annoying things they do: close System.out, call
System.exit, and otherwise trash the JVM state.

I've put this in special_test because it takes about 40 seconds to run
in opt mode.