Update MOE to build with Java 7.
Update ShellEditor to capture more information for an IOException.

This also expanded MoeProblem to optionally take a `Throwable cause`
in addition to a message.

This also introduces the use of a multi-catch block, so this has to
be compiled with Java 7 now!
Update Utils.copyDirectory() to use Java 7's Files.walkFileTree().

Again, this was motivated by the need to handle symlinks correctly.