Add comment for PLClangType
Use variable declaration as cursor under test
Support for availability information

This information is provided by the availability, deprecated, and
unavailable attributes added to a declaration.
Add PLClangGetVersionString()
Tweak comment
Add test for extended identifiers
Have translation units hold a reference to the index

This keeps the CXIndex valid as long a reference is held to a
translation unit that depends on it.
Have cursors and types hold a reference to the translation unit

This keeps the CXTranslationUnit (and by extension the CXIndex) valid as
long as a reference is held to an object that depends on it. To avoid a
retain cycle the translation unit does not retain its PLClangCursor.

This change frees the client from memory management concerns for CX
objects in most cases. Reparsing a translation unit and some code
completion operations can still invalidate existing objects associated
with a translation unit, for now this is something clients will need to
be aware of.