VOL-1460 Updated core to use voltha-protos instead of local protos
Moved protos to python directory in order to maintain functionaly of containers built there.
Added capability to do local builds of protos
Added instructions on running dep ensure for getting protos.
Updated github.com/golang/protobuf version to v1.3.1

Change-Id: Ia6ef55f07f0d5dcb5b750d7c37b21b71db85bfc4
diff --git a/python/protos/common.proto b/python/protos/common.proto
new file mode 100644
index 0000000..076477f
--- /dev/null
+++ b/python/protos/common.proto
@@ -0,0 +1,122 @@
+syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha-protos/go/common";
+
+package voltha;
+
+import "yang_options.proto";
+
+// Convey a resource identifier
+message ID {
+    string id = 1;
+}
+
+// Represents a list of IDs
+message IDs {
+    repeated ID items = 1;
+}
+
+enum TestModeKeys {
+    api_test=0;
+}
+
+message LogLevel {
+    option (yang_child_rule) = MOVE_TO_PARENT_LEVEL;
+
+    // Logging verbosity level
+    enum LogLevel {
+        DEBUG = 0;
+        INFO = 1;
+        WARNING = 2;
+        ERROR = 3;
+        CRITICAL = 4;
+        FATAL = 5;
+    }
+}
+
+message AdminState {
+    option (yang_child_rule) = MOVE_TO_PARENT_LEVEL;
+
+    // Administrative State
+    enum AdminState {
+
+        // The administrative state of the device is unknown
+        UNKNOWN = 0;
+
+        // The device is pre-provisioned into Voltha, but not contacted by it
+        PREPROVISIONED = 1;
+
+        // The device is enabled for activation and operation
+        ENABLED = 2;
+
+        // The device is disabled and shall not perform its intended forwarding
+        // functions other than being available for re-activation.
+        DISABLED = 3;
+
+        // The device is in the state of image download
+        DOWNLOADING_IMAGE = 4;
+
+        // The device is marked to be deleted
+        DELETED = 5;
+    }
+}
+
+message OperStatus {
+    option (yang_child_rule) = MOVE_TO_PARENT_LEVEL;
+
+    // Operational Status
+    enum OperStatus {
+
+        // The status of the device is unknown at this point
+        UNKNOWN = 0;
+
+        // The device has been discovered, but not yet activated
+        DISCOVERED = 1;
+
+        // The device is being activated (booted, rebooted, upgraded, etc.)
+        ACTIVATING = 2;
+
+        // Service impacting tests are being conducted
+        TESTING = 3;
+
+        // The device is up and active
+        ACTIVE = 4;
+
+        // The device has failed and cannot fulfill its intended role
+        FAILED = 5;
+    }
+}
+
+message ConnectStatus {
+    option (yang_child_rule) = MOVE_TO_PARENT_LEVEL;
+
+    // Connectivity Status
+    enum ConnectStatus {
+
+        // The device connectivity status is unknown
+        UNKNOWN = 0;
+
+        // The device cannot be reached by Voltha
+        UNREACHABLE = 1;
+
+        // There is live communication between device and Voltha
+        REACHABLE = 2;
+    }
+}
+
+message OperationResp {
+    option (yang_child_rule) = MOVE_TO_PARENT_LEVEL;
+
+    enum OperationReturnCode {
+        OPERATION_SUCCESS = 0;
+        OPERATION_FAILURE = 1;
+        OPERATION_UNSUPPORTED = 2;
+    }
+    // Return code
+    OperationReturnCode code = 1;
+
+    // Additional Info
+    string additional_info = 2;
+}
+
+