Fix de charger for real

The charge types are statically linked to the types in power_supply.h,
which doesn't work very well if you change kernels.

Also fix an issue introduced when the new charging drivers were ported
by causing the charger to periodically turn back on after full charge is
achieved.