Fixed all build warnings in the solution

I was getting sick of all the build warnings when building. A solution with 238 warnings makes it very hard to notice new warnings that you introduce.

Most of the fixes were missing XML comments on public members and CLS compliance which are important for us because we are a framework.

I propose that we turn on **Treat warnings as errors**. Personally, I think we should be setting an example and not checking in code that produces warnings. I have been just as guilty of doing it, so I would like the compiler's help :smile: 

I can switch warnings to errors as part of this PR. I am going to prepare it in my local branch and will push once the decision is made that it is OK.
Make private instead.