Features/checkout

added Repository.checkout(..) - see `test_checkout_*` for how to use.