Fix null pointer dereference in DirectSession::RunInternal
Please don't use "add file"/"update file"/"fix file"/etc. commit messages. These are hard to reason about when looking at the history of the file/repository. Instead, please write explanatory git commit messages.

The commit message is also the title of the PR if the PR has only one commit. It is thus twice important to have commit messages that are relevant, as PRs would be easier to understand and easier to analyze in search results.

For how to write good quality git commit messages, please consult https://cbea.ms/git-commit/  cc @mihaimaruseac 
Changed `run_metadata` checking, added return with error in case when it equals `nullptr`. Renamed commit and PR @gbaned, can we continue merging it? > @gbaned, can we continue merging it?

Hi @SweetVishnya This PR is giving internal checks failures. We are looking on it. Thank you! From internal CI:

> Use absl::AbortedError etc. instead of tsl::errors::Aborted. You will need to write explicitly the e.g. absl::StrCat. This is required to get correct absl::SourceLocation propagation within Google codebase

Can you please fix this? @gbaned, what about the status of this PR? Can we continue merging it? > @gbaned, what about the status of this PR? Can we continue merging it?

Hi @PaDarochek It is in the process of internal review. Thank you! Hi @PaDarochek Can you please check @mrry's [comments](https://github.com/tensorflow/tensorflow/pull/60227#discussion_r1348959514) and keep us posted ? Thank you! @gbaned @mrry Added guards on each subsequent use of `run_metadata`, rebased branch on master. Can you please take a look? Thanks!
The bug was found by Svace static analyzer:

1. run_metadata may be null because it is checked for null on https://github.com/tensorflow/tensorflow/blob/r2.12/tensorflow/core/common_runtime/direct_session.cc#L545
2. later it is zero-dereferenced by run_metadata->mutable_step_stats()

cc @mihaimaruseac
