fix exception wrapping for Method.invoke and static initializers

Method.invoke should only wrap instances of Exception in
InvocationTarget, not Error.

Also, we must initialize ExceptionInInitializerError.exception when
throwing instances from the VM, since OpenJDK's
ExceptionInInitializerError.getCause uses the exception field, not the
cause field.