using new poller class to simplify the battery interface and
downstream usages of battery.
tweaked poller destructor and remove the default constructor
in preference of using a unique pointer
convert simulator to use a std::thread for lvgl Tick api because
the SDL thread sleep was not true to time. (and is simplified the code...)