Pulled out common functionality from UsbLedGen1 and UsbLedGen2 into UsbLed