Extract battery interface into IBatteryObject

#1752