Flatten threads: fix for application/json+protobuf responses

When a new message is created in a thread, the thread itself is
reloaded, but via an application/json+protobuf request (array-like data)
instead of a regular text/plain request (object-like data). Since the
code didn't work well for these types of requests, the thread didn't
fully load.

This CL fixes this issue by correctly handling application/json+protobuf
responses in the response modifiers.

An issue with the read-only interceptors has also been fixed, and tests
have been added to ensure that the array-like to object-like and
viceversa transformation functions work properly.

Bug: twpowertools:153
Change-Id: If6cd5adc67d676bf36986f325e791124fa71da51
diff --git a/src/models/Message.js b/src/models/Message.js
index f5e5b37..baebd14 100644
--- a/src/models/Message.js
+++ b/src/models/Message.js
@@ -63,7 +63,7 @@
   }
 
   static mapToMessageOrGapModels(rawArray) {
-    return rawArray.map(mog => {
+    return rawArray.filter(mog => mog !== undefined).map(mog => {
       if (mog[1]) return new MessageModel(mog[1]);
       if (mog[2]) return new GapModel(mog[2]);
     });