Upgrade rust/crates/protobuf-codegen to 2.17.0

* Android.bp was regenerated. New rurstc warnings were found.
* Keep local change in src/lib.rs; set rust-protobuf version to "2.17.0".

Change-Id: I84fd880955dad26e4490b5110bd44573fde0da02
Test: make
diff --git a/src/field/mod.rs b/src/field/mod.rs
index 4925d2c..cbe99ee 100644
--- a/src/field/mod.rs
+++ b/src/field/mod.rs
@@ -322,6 +322,7 @@
             field.message.get_scope().file_scope.file_descriptor,
             false,
             root_scope,
+            customize,
         );
         match (field.field.get_field_type(), message_or_enum) {
             (
@@ -945,12 +946,14 @@
             None => match self.proto_type {
                 FieldDescriptorProto_Type::TYPE_MESSAGE => panic!("not a single-liner"),
                 FieldDescriptorProto_Type::TYPE_BYTES => format!(
-                    "::protobuf::rt::bytes_size({}, &{})",
+                    "{}::rt::bytes_size({}, &{})",
+                    protobuf_crate_path(&self.customize),
                     self.proto_field.number(),
                     var
                 ),
                 FieldDescriptorProto_Type::TYPE_STRING => format!(
-                    "::protobuf::rt::string_size({}, &{})",
+                    "{}::rt::string_size({}, &{})",
+                    protobuf_crate_path(&self.customize),
                     self.proto_field.number(),
                     var
                 ),
@@ -960,7 +963,8 @@
                         t => t.clone(),
                     };
                     format!(
-                        "::protobuf::rt::enum_size({}, {})",
+                        "{}::rt::enum_size({}, {})",
+                        protobuf_crate_path(&self.customize),
                         self.proto_field.number(),
                         var_type.into_target(&param_type, var, &self.customize)
                     )
@@ -972,16 +976,19 @@
                     };
                     if self.proto_type.is_s_varint() {
                         format!(
-                            "::protobuf::rt::value_varint_zigzag_size({}, {})",
+                            "{}::rt::value_varint_zigzag_size({}, {})",
+                            protobuf_crate_path(&self.customize),
                             self.proto_field.number(),
                             var_type.into_target(&param_type, var, &self.customize)
                         )
                     } else {
                         format!(
-                            "::protobuf::rt::value_size({}, {}, ::protobuf::wire_format::{:?})",
+                            "{}::rt::value_size({}, {}, {}::wire_format::{:?})",
+                            protobuf_crate_path(&self.customize),
                             self.proto_field.number(),
                             var_type.into_target(&param_type, var, &self.customize),
-                            self.wire_type
+                            protobuf_crate_path(&self.customize),
+                            self.wire_type,
                         )
                     }
                 }
@@ -998,9 +1005,10 @@
         match self.proto_type {
             FieldDescriptorProto_Type::TYPE_MESSAGE => {
                 w.write_line(&format!(
-                    "{}.write_tag({}, ::protobuf::wire_format::{:?})?;",
+                    "{}.write_tag({}, {}::wire_format::{:?})?;",
                     os,
                     self.proto_field.number(),
+                    protobuf_crate_path(&self.customize),
                     wire_format::WireTypeLengthDelimited
                 ));
                 w.write_line(&format!(
@@ -1179,7 +1187,10 @@
                 flag: SingularFieldFlag::WithFlag { .. },
                 ..
             } => {
-                self.write_self_field_assign(w, &full_storage_type.wrap_value(value));
+                self.write_self_field_assign(
+                    w,
+                    &full_storage_type.wrap_value(value, &self.customize),
+                );
             }
             &SingularField {
                 flag: SingularFieldFlag::WithoutFlag,
@@ -1201,7 +1212,8 @@
                 let wrapped = if *flag == SingularFieldFlag::WithoutFlag {
                     converted
                 } else {
-                    self.full_storage_type().wrap_value(&converted)
+                    self.full_storage_type()
+                        .wrap_value(&converted, &self.customize)
                 };
                 self.write_self_field_assign(w, &wrapped);
             }
@@ -1337,8 +1349,12 @@
         };
         let type_name_for_fn = protobuf_name(self.proto_type);
         w.write_line(&format!(
-            "::protobuf::rt::read_{}_{}{}_into(wire_type, is, &mut self.{})?;",
-            singular_or_repeated, carllerche, type_name_for_fn, self.rust_name
+            "{}::rt::read_{}_{}{}_into(wire_type, is, &mut self.{})?;",
+            protobuf_crate_path(&self.customize),
+            singular_or_repeated,
+            carllerche,
+            type_name_for_fn,
+            self.rust_name
         ));
     }
 
@@ -1353,8 +1369,10 @@
     fn write_assert_wire_type(&self, wire_type_var: &str, w: &mut CodeWriter) {
         w.if_stmt(
             &format!(
-                "{} != ::protobuf::wire_format::{:?}",
-                wire_type_var, self.wire_type
+                "{} != {}::wire_format::{:?}",
+                wire_type_var,
+                protobuf_crate_path(&self.customize),
+                self.wire_type
             ),
             |w| {
                 self.write_error_unexpected_wire_type(wire_type_var, w);
@@ -1394,7 +1412,8 @@
             ref key, ref value, ..
         } = self.map();
         w.write_line(&format!(
-            "::protobuf::rt::read_map_into::<{}, {}>(wire_type, is, &mut {})?;",
+            "{}::rt::read_map_into::<{}, {}>(wire_type, is, &mut {})?;",
+            protobuf_crate_path(&self.customize),
             key.lib_protobuf_type(&self.customize),
             value.lib_protobuf_type(&self.customize),
             self.self_field()
@@ -1420,7 +1439,8 @@
                     SingularFieldFlag::WithoutFlag => "proto3",
                 };
                 w.write_line(&format!(
-                    "::protobuf::rt::read_{}_enum_with_unknown_fields_into({}, is, &mut self.{}, {}, &mut self.unknown_fields)?",
+                    "{}::rt::read_{}_enum_with_unknown_fields_into({}, is, &mut self.{}, {}, &mut self.unknown_fields)?",
+                    protobuf_crate_path(&self.customize),
                     version,
                     wire_type_var,
                     self.rust_name,
@@ -1455,7 +1475,8 @@
             }
             FieldElem::Enum(..) => {
                 w.write_line(&format!(
-                    "::protobuf::rt::read_repeated_enum_with_unknown_fields_into({}, is, &mut self.{}, {}, &mut self.unknown_fields)?",
+                    "{}::rt::read_repeated_enum_with_unknown_fields_into({}, is, &mut self.{}, {}, &mut self.unknown_fields)?",
+                    protobuf_crate_path(&self.customize),
                     wire_type_var,
                     self.rust_name,
                     self.proto_field.number()
@@ -1513,8 +1534,10 @@
                 w.write_line(&format!("let len = {}.compute_size();", item_var));
                 let tag_size = self.tag_size();
                 w.write_line(&format!(
-                    "{} += {} + ::protobuf::rt::compute_raw_varint32_size(len) + len;",
-                    sum_var, tag_size
+                    "{} += {} + {}::rt::compute_raw_varint32_size(len) + len;",
+                    sum_var,
+                    tag_size,
+                    protobuf_crate_path(&self.customize)
                 ));
             }
             _ => {
@@ -1566,7 +1589,8 @@
                 ref key, ref value, ..
             }) => {
                 w.write_line(&format!(
-                    "::protobuf::rt::write_map_with_cached_sizes::<{}, {}>({}, &{}, os)?;",
+                    "{}::rt::write_map_with_cached_sizes::<{}, {}>({}, &{}, os)?;",
+                    protobuf_crate_path(&self.customize),
                     key.lib_protobuf_type(&self.customize),
                     value.lib_protobuf_type(&self.customize),
                     self.proto_field.number(),