Added a uid to link responses to requests. The uid from the response
is checked against the uid of the request. If there is a mismatch,
the response is discarded. This allows the ctrl_core to discard responses
that the app may not handle, preventing a memory leak.
For example, the response timeout occurred before the response was
received. In this case, the request already got the timeout response,
and not handle the delayed response.
For backward compatability with older fw, if returned uid is 0,
UID checking is ignored.