Don't swallow KeyError for driver constructor

Previously, if the driver_name was valid, but the driver constructor
raised a KeyError exception, the KeyError exception was swallowed and
a DriverNotFoundError was raised.

This happened to me where the remote driver raised a KeyError
exception because of a problem (missing session ID) but Splinter
misleadingly reported DriverNotFoundError.

This patch changes the scope of the try block so it will only
catch KeyError exceptions that are due to invalid driver names.