Add .gitattributes to avoid line-ending issues

When using Windows, the best option is to use auto line endings. This
means that git will checkout files using CR/LF and commit as LF.

When installing Git for Windows this is the default, but it's easy for
folks to accidentally override this setting. Thus, it's best to specify
an explicit default at the repository level as this overrules the user
configuration.
Expand .gitignore

We were missing comments and files related to Visual Studio's project
migration backups.