String trim for new line and tabs

Clean up string to remove spaces, newline, tabs etc.
Configuration via _TRT _ART tables

Respect ACPI _TRT and _ART table in selecting cooling devices.
Select configuration file

If there is a platform specific XML config exists, give priority
to the configuration.
Check duplicate before adding new cdev

Add only once, the later add will simply update inluence.
Thermal zone with no cdevs

Even if there is some thermal zone with no cooling devices,
load them.
Binding cooling device with no trips

When there is no trip temperature, then binding can be done
to existing trips. But check if existing trip is valid.
Don't add a zone with invalid trips

If the trips are invalid then don't add zones as they are useless.
Use _TRT _ART configuration

_TRT and _ART just describes relationships with no trips.
The existing configuration needs a trip. In this case
still respect the relationship by applying to current trips
which are already defined.
Cleanup dmi reads

Remove sysfs read to istream for easy reads.
surface and skin sensor zone

Include only one. If the skin sensor zone already has passive
trips, then we can use than defining our own.
Add trip id along with zone id

When same cooling device is associated with two different trips in
same zone, then don't undo sets by lower trip values. Otherwise
one trip sets and other trip resets immediately. Use similar
to zone mask so that the trip which activated cooling device is
the one deactivate it.
Sort trips

If the trips are configured in random order, sort them  in ascending
order.
Add sampling interval

Added sampling interval for binding cooling devices.
Add exceptions for file read

When iofstream read generates exception catch it and return error.
ignore bad hyst data and sequential compensation

By default add sequential compensation.
Add two trip points for CPU

One trip is MAX_TEMP configured by BIOS: This is the point
where cooling device is activated, i.e PASSIVE
Real max: A mid point between critical and max, where we need
agressive control
Don't fail to register even if one cdev exists

The thermal relationships can define multiple cooling devices,
but on some platforms they may not exist, so don't fail.
Fix issue when one zone has both active and passive trips

When one zone contains cdevs were added to both zones calling wrong
cdev activation.
Add RAPL Memory controller

Added RAPL memory controller as a cooling device.
Regression due to cdev_trip removal

We want to ignore failure not remove. The thermal sysfs uses this
for binding info. Also apply before sort of trips as the thermal
sysfs are hardcoded.