sdm: hw: Redesign the hw interface and implementation

The new structure eliminates the unnecessary multiple inheritance
and a lot of code bloat.

The structure now is:
HWInterface <>--- HWDevice <>--- HW{Primary, HDMI, Virtual}

Change-Id: Ieb4c97da039640f4499c788b69d5bda3c6146abe
19 files changed