Drivers can choose to initialize a DriverQueryHook object in their
initialization and use that wherever they want.
The only use case I see right now is to provide a hook just before query is
launched on the driver.
This interface is meant to unify drivers' needs of having hooks. Each driver
can use the methods in their own way. Each driver can pose its own restrictions
or guidelines on methods for its hooks.
e.g. some driver may choose to not allow any hooks
another driver may allow hooks but for restricted usage
Some drivers may want their hooks to be initialized with some constructor params
Currently, Hivedriver and Jdbcdriver only require their hook implementations to have a default constructor
This interface is expected to evolve for some time as more needs of hooks are discovered