Clean up

This change looks bigger than it actually is, it's mostly doc cleanup and fixes some FxCop warnings.  One functional change is that we now use `Uri` everywhere rather than just taking strings.  I also renamed `Url` to `Uri` everywhere so things are now consistent.  There's one Java test failure that looks like its related to how Java handles data URIs, but I need to look further into it.  I opened this now just to make sure no one objected to the switch before I spend time figuring out the problem.