message: Make eager's RunMetadata marginally more useful by including the correct duration.
  When generating the trace using tensorflow/python/client/timeline.py, all_end_rel_micros is used instead of op_end_rel_micros:
diff: @@ -148,6 +148,9 @@ Status MaybeCopyInputToExpectedDevice(EagerOperation* op, int i,
  node_stats->set_op_end_rel_micros((now_nanos - pre_time_nanos) /
  EnvTime::kMicrosToNanos);
  node_stats->set_op_end_rel_nanos(now_nanos - pre_time_nanos);
  + node_stats->set_all_end_rel_micros((now_nanos - pre_time_nanos) /
  + EnvTime::kMicrosToNanos);
  + node_stats->set_all_end_rel_nanos(now_nanos - pre_time_nanos);
  }
  if (!status.ok()) {
  if (result_handle != nullptr) result_handle->Unref();
  @@ -664,6 +667,9 @@ Status EagerExecute(EagerContext* ctx, Device* device,
  maybe_stats->set_op_end_rel_micros(nanos / EnvTime::kMicrosToNanos -
  maybe_stats->all_start_micros());
  maybe_stats->set_op_end_rel_nanos(nanos - maybe_stats->all_start_nanos());
  + maybe_stats->set_all_end_rel_micros(nanos / EnvTime::kMicrosToNanos -
  + maybe_stats->all_start_micros());
  + maybe_stats->set_all_end_rel_nanos(nanos - maybe_stats->all_start_nanos());
  mutex_lock ml(*ctx->MetadataMu());
  if (ctx->ShouldStoreMetadata()) {
  auto* step_stats = ctx->RunMetadataProto()->mutable_step_stats();
  