zsh: Make zsh, cygwin, and emacs get along better
emacs: Add MarkdownMode
git: Ignore .lnk files

Because why would you ever want a .lnk file in a git repo?
git: Add aliases for assume-unchanged

- 'ignored' lists files that are assumed to be unchanged
- 'ignore' assumes a file is unchanged
- 'unignore' removes assume-unchanged
- 'unignore-all' removes assume-unchanged from all files in current repo
zsh: Clean up zshrc, remove unused code
git: Add 'git woops'
zsh: Add directory hash for p->projects directory

- I always keep the projects directory in the same place, depending on os
mintty: Change font size 11 -> 10
zsh: Extract cygwin specific zshrc to it's own file.
git: Push upstream only
git: Use diffmerge

- This is not implemented in a cross-platform way.