Protect Signature creation from components containing '\0'
Protect Signature creation from invalid parameters
Protect Commit creation from message containing '\0'
Protect TagAnnotation creation from name or message containing '\0'
Protect TagAnnotation creation from invalid parameters
Refactor Marshalers
Split Patch and TreeChanges generation

Remove Patch from TreeChanges
Make repo.Diff.Compare() generic