lib/driver: Updated driver so that is now is fully async as well as sync.
test/unit/driver*: Added unit tests for driver functions.