Add config option which suppresses device removed callbacks in certain cases.  This is intended only for devices with with poor networking support.  By default, this is assumed to be all Apple devices (strictly speaking, all iOS and MacBooks using wifi but we can't distinguish between wired and wireless connections outside OS code yet).
Refactor towards allowing clients to request subscriptions be renewed.  Untested.
gcc fix