Better parsing of .gitignore

This fixes #476.
The parsing code was completely rewritten, and I'd claim it matches the git behaviour (see ref 1) in most of the cases.
I used some parts of gitignore-parser (ref 2) as an inspiration.
While I was developing this, I found the git command `git ls-files --ignored --exclude-from=.gitignore` (see ref 3 and 4), which is doing just the same, but on git's side ;)
It would make our parsing even better, so I'd like to see it called from brackets-git.

References:
1. http://git-scm.com/docs/gitignore
2. https://github.com/codemix/gitignore-parser/blob/master/lib/index.js
3. https://www.kernel.org/pub/software/scm/git/docs/git-ls-files.html
4. http://stackoverflow.com/a/467053/3455922