[xla:ffi] Add xla::ffi::ExecutionContext to pass user data to FFI handlers at run time
[xla:ffi] Add xla::ffi::ExecutionContext to pass user data to FFI handlers at run time

There are two kinds of data that can be added to execution context:
1. Opaque pointers with a deleter for users that register context types that are can be defined in shared libraries and can't depend on XLA internals
2. Types ExecutionContext::UserData for FFI handlers in the same process

Next step is to plumb execution context all the way up to xla::ExecuteOptions and PjRt

Reverts 15f8f10f345aa41475cd3b6cf2f162a2fb1aa152

FUTURE_COPYBARA_INTEGRATE_REVIEW=https://github.com/openxla/xla/pull/12154 from philipphack:u_fp8_scale_xla c7944fc3b2b7fdc45a06d058dea856fff2bd7e15
