A completely new redesign!

This closes a few issues on NodeGit:

- https://github.com/nodegit/nodegit/issues/157
- https://github.com/nodegit/nodegit/issues/211
- https://github.com/nodegit/nodegit/issues/214