In particular,
Replace scanResponseChan struct with a reply channel in req.
This removes one chokepoint with tracking a map of channel with a mutex wrapping by not sharing data across different requests and
makes it easier to reason about the correctness of the behavior.
Other changes are mostly cosmetic to group your operations related to
the primitives you are operating on, reducing the average lifetime of
a local variable (matters mostly for humans; compilers are very good at this nowadays).
Also this is net benefical by reducing LOCs by 45.
Signed-off-by: ttimonen <toni.timonen@iki.fi>