net/rpc: fix data race on Call.Error +eliminates a possibility of sending a call to Done several times. +fixes memory leak in case of temporal Write errors. +fixes data race on Client.shutdown. +fixes data race on Client.closing. +fixes comments. Fixes issue 2780.
net/rpc: fix data race on Call.Error
+eliminates a possibility of sending a call to Done several times.
+fixes memory leak in case of temporal Write errors.
+fixes data race on Client.shutdown.
+fixes data race on Client.closing.
+fixes comments.
Fixes issue 2780.

R=r, rsc
CC=golang-dev, mpimenov
http://codereview.appspot.com/5571063

tav/go,tav/go,tav/go,tav/go,tav/go,tav/go,tav/go