Fixes #5935

Also improves apc/process() (doesnt add and then remove charge from
cells when it doesn't have to).
Fixes icons and other things not updating when the master controller updates power status.

This was due to the master controller using update_powered_status()
instead of power_change(), but many machines override power_change() to
do various things when the machine gains or loses power.
Fixes #5901