Fix type caster for heap reference types

Need to use the intrinsic type, not the raw type.

Fixes #392.
diff --git a/tests/test_issues.py b/tests/test_issues.py
index c1e0756..056737a 100644
--- a/tests/test_issues.py
+++ b/tests/test_issues.py
@@ -166,3 +166,17 @@
     assert m2.value == 2
     m1 = get_moveissue1(1)
     assert m1.value == 1
+
+def test_override_ref():
+    from pybind11_tests.issues import OverrideTest
+    o = OverrideTest(42)
+
+    i = o.int_ref()
+    assert o.int_value() == 42
+    assert o.int_ref() == 42
+
+    assert o.A_value().value == 99
+    a = o.A_ref()
+    assert a.value == 99
+    a.value = 7
+    assert a.value == 7