How should CBPeripheralManager state changes be handled?