Add a message tracker to detect unanswered rpc calls

Not sure if we want to actually pull this into the mainline (or pull it until the protocol refactor is finished).
This class monitors the rpc requests and responses and logs if a message does not get a reply within a reasonable amount of time (configured in constructor).