Simplify troubleshooting by reporting on node calls on failure

This change collects information about each node invocation and wraps
any exception during node invocation in a GraphExecutionException with
the additional data.
assert rather than Preconditions.checkNotNull?
(assert is normally turned off, but if it is a library error if input is null here, the NPE on the next line is probably good enough)