Default credentials fun

May wish to move `GitCredentialType` back up into the main namespace. I left it in Core to reinforce that it's really not something meant for public consumption, despite the need to leave it `public` to support inheritance. Or we could just skip that commit and leave the parameter as an `int`. Thoughts?

/cc @phkelley @nulltoken