Added a new version of charge_state.

get_charge_state is now redundant, at a cost of 24 bytes.

Previously the charge_value was read on-demand.  It is now read in update().

This means it will incur a cost (of about 50 bytes) to all programs.  This cost could be eliminated with a #define (not implemented).