Integrate the new generation structure.

A somewhat experimental commit to demonstrate and lay the foundation for
the new code generation structure.

File breakdown:

  idefs.json (Generated)

    - Is a generated file that is substituting the heavily modified
      descriptor that nkallen had left us.

  nkallen.json (Will be deleted in the future)

    - Reference of the modified v0.18.0.json file @nkallen had created.

  descriptor.json (Developer maintained)

    - Inform decisions to the descriptor generation.

  setup.js

    - A script that runs to generate the idefs.json file.

  types.json (Will be deleted in the future)

    - Maps functions/classes/structs/types/etc. to JS, C, C++, and
      Emscripten (in the future).
Automate the building of all libgit2 types.
Library changes.
Enable GitAttr.
Automate dependencies.
Generating more types and safe identifiers.
Copied changes from Emscripten branch.

That are also relevant to this branch.
Added more types.
Lots of updates, most tests passing.

I've been able to get most of the tests passing, just a handful left.
There is a little manual intervention needed for most methods to get
them to compile correctly.

I'd love help on:

- Getting more methods compiled and tested!
- Code reviews.
- Testing the code!
Save state.
Moved build/codegen to generate.

This allows node-gyp to clean the build directory without wiping out the
code generation files.
Removed temporary files.
Made new.json more meaningful.
Update binding.gyp to use the latest files.
Tests now passing again.

This is a commit that will at least get us back on track with new
features.

If you want to contribute, please look at the tests and uncomment ones
that aren't being run.  Fix the bugs, we'll tag a release once we have
100% parity with 0.1.4.
Windows fixes.
Started working on tree.
All tree entries passing now.
Fix the libgit2 gyp config.
All tree tests passing, most commits passing.