Expose Xml documentation

Close #677.

There are two versions of `getXmlDocBySignature`, one uses Visual Studio services and the other uses XDocument and external files.

This PR mistakenly includes the other PR. I will rebase when the other gets merged.
I tried to improve readability a bit.