Read CPU values, use smart pointers instead of raw

Use unique_ptr and shared_ptr instead of raw pointers. Also read CPU
load and temperature from the following files:

Load: /proc/loadavg
Temperature: /sys/class/thermal/thermal_zone0/temp