Text this: Data-driven state of charge estimation of lithium-ion batteries: Algorithms, implementation factors, limitations and future trends