Added error checking in constructor of drivers

This is only for drivers that need it. By throwing an exception on
driver creation we prevent runtime errors from occurring later on when
functions and classes are missing due to uninstalled extensions.