Add operator== and != for some structs.

operator== and != are defined for type T where T is
one of the following:
* scalars
* strings
* enums
* U[] where U is in this list
* vec<U> where U is in this list
* structs that contain only types in this list.

If a struct contains a handle, an MQDescriptor,
or a union, for example, then == and != is not generated.

Bug: 32834072

Test: hidl_test
Change-Id: Icac73a14f81274ee6592e2b8fadf26d629151d9f
diff --git a/VectorType.cpp b/VectorType.cpp
index d946bb1..ff21994 100644
--- a/VectorType.cpp
+++ b/VectorType.cpp
@@ -77,6 +77,10 @@
     return mElementType->isBinder();
 }
 
+bool VectorType::canCheckEquality() const {
+    return mElementType->canCheckEquality();
+}
+
 std::string VectorType::getCppType(StorageMode mode,
                                    bool specifyNamespaces) const {
     const std::string base =