Allow both CPU and platform drivers to be simultaneously active
This is done by designating all drivers as CPU drivers or platform drivers. One of each driver can be active at any given time.
When setting an active profile CPU driver is set first as this is less likely to have failures. If failures occur setting the platform driver then the CPU driver is undone.
If both profiles are degraded then the string for the reason from both drivers will be comma separated to be compatible with existing API and users.
This is leveraged from the work done by @xdbob as part of !123 (closed)
Edited by Mario Limonciello