Pointer support and embedded types in HIDL.

* Pointers work per transaction. Don't work
  across transactions.
* ref<T> in HIDL translates to T const* in C++.
* No Java support.
* Embedded types like ref<vec<vec<int32_t>>>
  or vec<ref<T>> is supported. Pointers to
  pointers like ref<ref<ref<T>>> is supported.
* Array of pointers and pointer to array supported.
* Pointer inside a union is NOT supported.

Test: `mma`
Test: `make hidl_test && adb sync && adb shell hidl_test`
      Note that this only works with a kernel patch.

Bug: 31300815
Bug: 31349114

Change-Id: I15b74ca74a801009cc8bdc7132bd53d0185dbcbf
diff --git a/Android.bp b/Android.bp
index 07fd62c..eb0bcfb 100644
--- a/Android.bp
+++ b/Android.bp
@@ -40,6 +40,7 @@
         "Method.cpp",
         "NamedType.cpp",
         "PredefinedType.cpp",
+        "RefType.cpp",
         "ScalarType.cpp",
         "Scope.cpp",
         "StringType.cpp",