Use abstract base class for assignment driver

Use the abc module for managing abstract base classes in the driver
layer and add missing methods to concrete classes.

bp abstract-base-class-drivers

Change-Id: I91b20ff2f7fd591ea51da619a76044907a7f0c76
Merge "Use abstract base class for assignment driver"