Ported to NClang, to support indexing of files.

NClang now used, a bit unstable but gives much better libclang coverage.
Can now generate an index for the file.
reversed nclang modifcations

made our changes via extension methods.