Diagnostics

Its about time I actually get diagnostics put into master.
not sure, but are these being sent sequentially? or does `getDiagnosticFromPeer` cause a goroutine to do the hard waiting work. if sequentially, the ctx timeout is counting for the total.