[WIP] implement checkout

so here's another operation which supports progress - `checkout`

 - [x] support for the common overloads from `libgit2sharp`
 - ~~[ ] testing~~ punting