drivers: improvements to the low-level pwm driver interface

Adjusted the pwm driver interface slightly, most notably removed the anti-pattern of having an `UNDEFINED` value in the device enum in favor of a guard around the complete header/implementation files.

This PR is the first step in improving all existing low-level driver interfaces...