Add new interface and class for send command

Sending command job is giving up if command cannot be sent with any
reason. It means that command would be lost if Gerrit is down.

This patch adds new class and interface to raise exception if command
was not sent with errors. Also thread interrupted.
User can implement retry logic using this.
Hmm, It would be better if the old "sendCommand" could be reused somehow.
For example rename sendCommand to sendCommand2 that throws exceptions and then implement a new sendCommand that calls sendCommand2 but only logs the error and returns false.

Its a bit hazardous to maintain two implementations of the same thing like this.