WIP: andrioni's Libgit2 work

I'm making this into a pull request for easier discussion and so that I can check it out more easily.
the following padding is actually part of git_index_time (on a 64-bit system)

you shouldn't try to manually expand recursive structs, just make immutable types containing only other bitstypes and Julia should work out the padding correctly to the C-API