[VOL-2471] Update library to use package logger

This commit consists of the following:
1) Add a GetLogLevel() API to make it easier to use specific
logger.   There is also the V() API that kind of do something
similar.
2) Add a common.go file to some heavily used packages in order
to dynamically set their log level and also to a set a specific
logger per package.
3) Use a per package logger for some of the heavily used packages
for improved performance.

Change-Id: If22a2c82d87d808f305677a2e793f8064f33291e
diff --git a/pkg/log/log_test.go b/pkg/log/log_test.go
index 5ca0955..f32c55e 100644
--- a/pkg/log/log_test.go
+++ b/pkg/log/log_test.go
@@ -91,6 +91,19 @@
 			l, err := GetPackageLogLevel(name)
 			assert.Nil(t, err)
 			assert.Equal(t, l, expectedLevel)
+			// Get the package log level by invoking the specific logger created for this package
+			// This is a less expensive operation that the GetPackageLogLevel() request
+			level := myLoggers[name].GetLogLevel()
+			assert.Equal(t, level, expectedLevel)
+			// Check the verbosity level
+			for _, level := range levels {
+				toDisplay := myLoggers[name].V(level)
+				if level < expectedLevel {
+					assert.False(t, toDisplay)
+				} else {
+					assert.True(t, toDisplay)
+				}
+			}
 		}
 	}
 	//Test set all package level
@@ -100,6 +113,17 @@
 			l, err := GetPackageLogLevel(name)
 			assert.Nil(t, err)
 			assert.Equal(t, l, expectedLevel)
+			level := myLoggers[name].GetLogLevel()
+			assert.Equal(t, level, expectedLevel)
+			// Check the verbosity level
+			for _, level := range levels {
+				toDisplay := myLoggers[name].V(level)
+				if level < expectedLevel {
+					assert.False(t, toDisplay)
+				} else {
+					assert.True(t, toDisplay)
+				}
+			}
 		}
 	}
 }