Translation unit creation options and multiple unsaved file support

Tests to validate that the options actually work depend on forthcoming capabilities.

Comments are mostly taken from the libclang headers with modifications to account for API differences.

I am currently redefining libclang constants under the PLClang namespace, both for API consistency and to put the constants under the control of the Objective-C API should any changes be needed. This will result in redefining and mapping some large enums in the future (which also happen to be the most frequently updated parts of the libclang interface) so let me know if you disagree here.