When reflectively invoking a method, wrap thrown checked exceptions in UncheckedException instead of GradleException.

This was particularly problematic when invoking task actions, as the real exception was being masked in the output to the user.