Add cursor functions provided for C/C++

These functions are almost all cursor functions except for obj-c in libclang 3.4.

There is a limitation to need improving on `Cursor#translation_unit`.
`Cursor#translation_unit` returns same a pointer which is created by `Index#parse_translation_unit` and creates a TranslationUnit instance independently. On GC, the pointer is double-freed, and it raises segmentation fault.
To avoid it, instances created by `Cursor#translation_unit` does not manage the pointer, like a weak_ptr.
This is not good when using this library, but I have chosen this implementation for now.