Refactored protobuf framework, added loader

Included changes:

* Initial adapter interface spec
* Adapter loader to auto-load adapters
* Initial adapter NBI
* Better import support in chameleon, allowing more flexible
  protobuf structure (by organizing artifacts and service
  into separate proto files.
* Refactored voltha.proto to split things into logical proto
  modules.
* Some additional cleanup

Change-Id: I75f9883c6992148ea8df430bcdaebf85115fea4a
diff --git a/chameleon/protos/schema.proto b/chameleon/protos/schema.proto
index 2a1ec08..0c06feb 100644
--- a/chameleon/protos/schema.proto
+++ b/chameleon/protos/schema.proto
@@ -2,6 +2,8 @@
 
 package schema;
 
+import "google/protobuf/empty.proto";
+
 // Contains the name and content of a *.proto file
 message ProtoFile {
     string file_name = 1;  // name of proto file
@@ -17,13 +19,10 @@
 
 }
 
-// Empty message
-message NullMessage {}
-
 // Schema services
 service SchemaService {
 
     // Return active grpc schemas
-    rpc GetSchema(NullMessage) returns (Schemas) {}
+    rpc GetSchema(google.protobuf.Empty) returns (Schemas) {}
 
 }