Extract battery interface into IBatteryObject
extracted battery object to first-level class
Merge branch 'Prototik-ibatteryobject' into 6.0.x