We'll load each driver with separate class loader. 
Dependency confliction between driver and other submodule don't need to be take care.

For example, 
we need to allow create hive11 driver which depends on hive0.11 library, and shark driver which depends on hive0.9 library.