Expose translation unit creation options

These options are significant depending on the intended use of the
translation unit. Since some of the options can be reasonably combined
add an options parameter rather than methods to cover all possible
combinations.
Add an error parameter for translation unit creation

Although libclang does not currently expose the reason for failure
during translation unit creation (file I/O error, AST file created from
a different clang version, etc) it would be nice if it did so in the
future. Provide an API that allows this information to be exposed in the
future without breaking source compatibility.
Add test for translation unit creation failure
Support for multiple unsaved files

When creating (or reparsing) a translation unit unsaved data can be
provided for any of the files used within that translation unit,
including the main source file and any dependent headers.
Test the source-path-only variant for failed translation unit creation