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`
:clap: :fireworks: :beers: