Cyborg power overhaul

- Medium overhaul of cyborg power usage and charging mechanics. This mostly prevents few issues, such as AFK cyborgs running out of charge when doing nothing or AFK cyborgs in chargers using 75kW of power.
- Refer to specific commits for more information

- This technically implements what currently open PR #6364 implements. Very likely to cause conflicts if both are merged.

- Tested it, should work properly. Might still need balancing.

- Mostly fixes #6358 - It won't reduce the power load, it just evens it out and caps it at 25kW for each charger.
Ah okay. It's probably better that way, as I found that tracking whether there was charge left in addition to the NOPOWER flag complicated the code quite a bit when I was writing my own version.

Having a meter is pretty cool, although I was actually talking about calling build_icon() when the power state changes so that it doesn't look like it's still charging when the power has gone out. Typically it's done by overriding power_change() like so:

```
/path/to/machine/power_change()
    var/oldstat = stat
    ..()
    if (stat != oldstat)
        update_icon() //or build_icon() in the case of recharging stations.
````