PR #12161: Test for deserialization of GPU executables
PR #12161: Test for deserialization of GPU executables

Imported from GitHub PR https://github.com/openxla/xla/pull/12161

This patch tests that serialization and deserialization of GPU executables 
(e.g., for JAX compilation cache) succeeds.

The test covers the fix in [PR 12184](https://github.com/openxla/xla/pull/12184).

For completeness, PR 12184 fixes a problem where executable would be serialized 
as ExecutableAndOptionsProto by PjRtStreamExecutorClient::SerializeExecutable, but
StreamExecutorGpuClient::DeserializeExecutable would first try to deserialize
as StreamExecutorExecutableProto and sometimes succeed, reading mangled data.
The test in this patch exercises one such example.
Copybara import of the project:

--
818765f7b1f5f7282d3f2756b2a03ac556201a6c by Jaroslav Sevcik <jsevcik@nvidia.com>:

Avoid deserializing GPU executables as StreamExecutorExecutableProto

Merging this change closes #12161

FUTURE_COPYBARA_INTEGRATE_REVIEW=https://github.com/openxla/xla/pull/12161 from jaro-sevcik:serialize-as-stream-executor-executable 818765f7b1f5f7282d3f2756b2a03ac556201a6c
