Make GitCloneOptions a struct to fix issue #635

Fixes a garbage collection race during marshaling.