Refactor remote creation / reading

tldr: It formerly sucked, now it doesn't.

I scooped up all the logic for reading & writing git-tfs remote info into the repo's config, and tried to make it better organized, tested, etc.