Add attributes of reference to dependent object

This is not bugfix but makes coding easier.
TralnslationUnit class uses AutoPointer to call deallocating method on GC. However, TranslationUnit object is used by some objects such as Cursor or Type after the object is out-of-scope _unintentionally_.

For example, test cases in this library use following code in `cursor_spec.rb`:
```
Index.new.parse_translation_unit('foo.c').cursor
```
There are potential bugs in this code. Nobody has Index and TranslationUnit object created by `Index.new` and `parse_translation_unit` , so those objects are freed on next GC. Nevertheless, cursor object is alive and  can be used for the time being. These mistakes tend to happen.

This change makes objects to have a reference to dependent object  so that Index and TranslationUnit objects should be alive as long as Cursor or Type is alive.
Please comment if you have.