Using uevent instead of the separate files reduces I/O...

...and makes the code a bit cleaner.

Didn't touch much of the class logic, except that it just
displays the charge if the state is "Unknown".