Fix keepalive behavior on broken Sessions

If a Session object is broken (e.g. BMC goes away or network outage),
then its keepalive timer would cause an application to be starved
of being able to do any IPMI related work.  Address this scenario
by having the instance deregister its keepalive at the point it
reports itself as broken.

Change-Id: I6b7af8ad03759c676110fb4f0b7bfa41642152f3