Optimize CI_Session::__construct() routines and make driver validity check stricter