WIP: Migrate to promised-git, add comments, cleanup code, update specs

__WIP__

I'm being evil and `push --force` onto this branch, it's just so you can take a look at what is happing. :wink:

Some style things:
* I'm removing `under_score` variable names and use `camelCase` instead
* Lodash instead of  underscore
* Singles quotes unless double quotes are really necessary
* Empty function should use `-> return` instead of `-> null`
* _.each rather than `for` loops

Todo:
* [x] We should take the file 'mode' into consideration before displaying options. Deleted files should not have an option to show diff for example. Maybe we could add the file 'mode' to the file list?
* [x] Custom git command needs to be fixed.
* [x] 'needInput' needs to be fixed for other requests than custom git commands.
* [ ] `OutputView` needs to be formatted
* [x] Diff displaying needs to be fixed. (+ We need to reload the diffs if the file gets updated).
* [ ] Most of the `views` still need comments.
* [x] The diff selection is buggy when using arrow keys to navigate. Needs investigation.
* [x] Atomatigit needs to be guarded against projects that are not a git repository.
* [x] Fix resizing
* [x] Focus the atomatigit pane needs to be redone. The async promise based reloading causes bugs here.
* [ ] Focus behaviour of the custom git command prompt needs to be fixed.