trx: split TRXD parsing from socket callback
Extract TRXD message parsing into trx_data_read() and
reuse it from trx_data_read_cb()
This decouples parsing from socket I/O and allows reuse
with alternative transports
No functional changes intended
Change-Id: I50ad8b6d2edfd91f2d569cd8badf5c036fbf87ed