Improved design for the establishing database connection

Changed to load database driver dynamically by adding driver interface.

Now user can specify the driver name, such as mysqldb or pymysql, through the parameter 'dbdriver' in DB.__init__() method for establishing database connection.