binder_tokio: only use threadpool for new transactions

The binder kernel driver will detect whether a binder transaction is
started from a thread that is already handling a transaction, and if-so,
use some special logic to avoid deadlocks. This CL makes the async Rust
wrapper check whether we are handling a transaction before offloading
transactions to the `spawn_blocking` thread pool. This avoids breaking
the deadlock prevention in the kernel.

Test: m
Change-Id: If2707c464a4043c80bd893314113b65ef4633baf
3 files changed