Make provider gitignore rule more generic

Update .gitignore to ignore any files with Provider in the name in the
platform build folders instead of just the PodcastProvider so that it
is more generic.
Get SDK path from the registry for build scripts

Get the path to the Windows SDK from the
HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1 key in the registry
instead of having it hard-coded in the build and publish batch files.

This fixes the scripts looking in Program Files (x86) instead of Program
Files when being run from a 32-bit command prompt.
Require provider user-agent for CachedWebClient

Update the signature of DownloadData and DownloadString in CachedWebClient
to force non-internal callers (e.g. providers) to pass a user-agent string
to be sent along with the request.  This allows requests from different
providers to be separately identified on servers and should hopefully
prevent Radio Downloader from being tarred with the same brush as a rogue
provider.

Also updated the Podcast provider to pass a sensible user agent for requests
that it makes.
Force CRLF for Visual Studio project files

Adjust .gitattributes so that sln and csproj files always retain a CRLF
line ending, even on *nix.