feat #849 add `.gitattributes` file

This commit adds `.gitattributes` file which tells Git how to handle internally certain kinds of files.

It also renormalizes the repo to use the new settings (hence 3 additional files are changed).

Thanks to this settings file, the repo will always behave in the same predictable way regardless of the user's `core.autocrlf` settings. 
I.e. hopefully we will never have "whole-file-has-changed" diffs anymore.

For more info, see:
http://stackoverflow.com/questions/170961/whats-the-best-crlf-handling-strategy-with-git
https://help.github.com/articles/dealing-with-line-endings

----

Once everyone gets this commit, no additional action is needed on any developer's side.