Binary incompatible serializer changes

- If the field type is fixed and the type is final, Class info can be omitted
- Annotations serializer to use optimization based on the fact Map<String, String> and non-null key/value
- Reduce number of Map copy required for ImmutableMap serializer
- Reduce number of array copy behind Immutable{List, Set} serializer

Change-Id: Ie467a943a33fbfb43b289b8b71ad91ee5890bfb0
diff --git a/core/store/serializers/src/main/java/org/onosproject/store/serializers/DefaultApplicationIdSerializer.java b/core/store/serializers/src/main/java/org/onosproject/store/serializers/DefaultApplicationIdSerializer.java
index 45e90c4..a930d07 100644
--- a/core/store/serializers/src/main/java/org/onosproject/store/serializers/DefaultApplicationIdSerializer.java
+++ b/core/store/serializers/src/main/java/org/onosproject/store/serializers/DefaultApplicationIdSerializer.java
@@ -36,14 +36,14 @@
 
     @Override
     public void write(Kryo kryo, Output output, DefaultApplicationId object) {
-        kryo.writeObject(output, object.id());
-        kryo.writeObject(output, object.name());
+        output.writeShort(object.id());
+        output.writeString(object.name());
     }
 
     @Override
     public DefaultApplicationId read(Kryo kryo, Input input, Class<DefaultApplicationId> type) {
-        short id = kryo.readObject(input, Short.class);
-        String name = kryo.readObject(input, String.class);
+        short id = input.readShort();
+        String name = input.readString();
         return new DefaultApplicationId(id, name);
     }
 }