feature: checkout commands

TODO's:

- [x] Checkout a commit; equivalent to `git checkout <ref_or_sha1>`
- [x] Checkout files to index (discard unstaged changes)
- [x] Checkout files to specific revision; equivalent to: `git checkout <ref_or_sha1> -- file.txt`