Protocol: accept driver string in constructor

Init manual_driver with None and try to set it, if there driver
parameter is given.
If invalid driver parameter is given, we ignore it and write a debug
message.