Implement reference_internal with a keep_alive
reference_internal requires an `instance` field to track the returned
reference's parent, but that's just a duplication of what
keep_alive<0,1> does, so use a keep alive to do this to eliminate the
duplication.
diff --git a/example/issues.ref b/example/issues.ref
index f25ab29..8a05c5d 100644
--- a/example/issues.ref
+++ b/example/issues.ref
@@ -24,9 +24,12 @@
1. example.issues.StrIssue(arg0: int)
2. example.issues.StrIssue()
Invoked with: no, such, constructor
+NestABase@0x1152940 constructor
NestA@0x1152940 constructor
+NestABase@0x11f9350 constructor
NestA@0x11f9350 constructor
NestB@0x11f9350 constructor
+NestABase@0x112d0d0 constructor
NestA@0x112d0d0 constructor
NestB@0x112d0d0 constructor
NestC@0x112d0d0 constructor
@@ -36,9 +39,17 @@
3
1
35
+-2
+42
+-2
+42
NestC@0x112d0d0 destructor
NestB@0x112d0d0 destructor
NestA@0x112d0d0 destructor
+NestABase@0x112d0d0 destructor
+42
+NestA@0x1152940 destructor
+NestABase@0x1152940 destructor
NestB@0x11f9350 destructor
NestA@0x11f9350 destructor
-NestA@0x1152940 destructor
+NestABase@0x11f9350 destructor