Work around charge controller results

When the light is both charging and powering the torch, the charging status
flickers, resulting in a flickery charge LED.  This is not a real-life
use-case, and the factory firmware displays the same behavior, but what's the
point of having a programmable flashlight if you can't make it perfect?

Adds a ChargeController class that only returns a new state from
getChargeState() if it has held constant for at least 100ms.
Don't provide a base implementation of Handler::getName()
Fix ChargeController to properly return last known good state