Correct redundant timedout calls in recursion
Correct redundant timedout calls in recursion

When handling multiple sessions hiting a timeout expiry,
there was a chance that during recursion a session would
get redundantly scheduled for retry/timeout.  Address this
by clearing out the scheduled sessions prior to acting on
any of the sessions.  Additionally, only start the timeout
clock after successfully placing the payload on the wire,
rather than including local delays against timeout expiry.

Change-Id: I2f58f0afcb13943654489630f7e8164913633a49

stackforge/pyghmi,openstack/pyghmi,benoit-canet/pyghmi,openstack/pyghmi