[WIP] Descriptor refactor.

This PR is working on completely decoupling the meta data required to generate the source binding from the JSON published by the libgit2 project.  Once this is completed, we should be able to trivially add and remove new methods and classes as they change by simply updating the descriptor file.

So far it's going better than expected, libgit2 is so strict with the conventions that I can infer most manually added properties.  This is a very important PR so time will be taken and it will not be rushed.

My goal is to improve the templates in a separate PR.
There's gonna be some weirdness as I'm rebasing this branch.  Now that you're getting involved, I need to undo all my sloppy coding while I thought nobody was looking.  I'll need a few more days to get it all in order for someone else to start reviewing and helping out.