Explicitly check for pItem == NULL to satisfy Xcode analyzer (#667, #674)

As far as I can tell, the logic above this line does work correctly and
calls `allocate_field()` in any case where iter->pData could point to pointer
to NULL. But the logic depends on PB_SIZE_MAX and other subtle points, which
may be why static analyzers complain. This commit makes it explicitly check
and error out.
diff --git a/pb_decode.c b/pb_decode.c
index 790df75..d9ecf25 100644
--- a/pb_decode.c
+++ b/pb_decode.c
@@ -701,6 +701,12 @@
 
                     /* Decode the array entry */
                     field->pData = *(char**)field->pField + field->data_size * (*size);
+                    if (field->pData == NULL)
+                    {
+                        /* Shouldn't happen, but satisfies static analyzers */
+                        status = false;
+                        break;
+                    }
                     initialize_pointer_field(field->pData, field);
                     if (!decode_basic_field(&substream, PB_WT_PACKED, field))
                     {