[WIP] Refactor descriptor

The native modules that are generated are compiled now from 3 sources: descriptor.json, types.json and the libgit2 docs json file. We only really need the libgit2 docs file and in rare cases have overrides in the descriptor.json file.

This should reduce a lot of the complexity in generating the native module.