## Description
This PR gets rid of read_objects_for_synchronous_execution.
This is done by always assigning shared object versions, even for end of
epoch transactions.
When we are about to execute the end of epoch transaction, it's the same
as if we just received this transaction from consensus, and hence we
could use the same logic to assign versions.
By doing so we remove some special logic just for end of epoch
transactions, and now there is only one version of read objects for
execution.
## Test plan
CI
---
## Release notes
Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.
For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.
- [ ] Protocol:
- [ ] Nodes (Validators and Full nodes):
- [ ] Indexer:
- [ ] JSON-RPC:
- [ ] GraphQL:
- [ ] CLI:
- [ ] Rust SDK: