Reorder `GitCommand` inheritance for stable MRO
Reorder `GitCommand` inheritance for stable MRO

This would be straight forward if "complex" mixins would just appear
first.  Surprisingly though `CheckoutDiscardMixin` which is a simple,
autonomous mixin has to appear somewhere in the middle.

I can't explain this so it seems brittle for us end-users.

divmain/GitSavvy,divmain/GitSavvy,divmain/GitSavvy