Improved template support

I followed your advice regarding clangIndex from https://github.com/azeno/CppSharp/commit/d3fb9289cf51f6854ef2a226354d3ec80d815e96 and changed the function/method/template lookup in the parser to use a USR.
When generating the parser bindings I couldn't see much of a difference performance wise, but i didn't do any performance testing.

* Fixed a crash in case the file path of a translation unit was invalid.
* Use clangIndex to identify declarations across translation units.
* Added new Find*ByUSR methods and removed unused Find*(IntPtr) methods.
* Added Depth/Index and IsParameterPack fields to TemplateParameterType.
* Fixed member initialization issues in C++ Method class.
* Added AST tests for function and class templates.
* All tests pass with new and old parser.