Add a new (cheating) clone API, and use it in tests.
move the cheater clone_at to c.
Clone with libgit2.

*   change back to `git clone` for test repo setup, because I
    can't figure out how to make libgit2
    (a) create refs/remotes/origin/HEAD (`git clone` does), or
    (b) clone everything, even orphaned commits (needed by the reset
    tests).
bare clone
refactor
Report progress.
hack demo that clone doesn't spin down cleanly.
Less-hacky demo of the "left git_clone hanging" problem.
Add a type for the callback payload.

This will let me catch an exception and re-raise it later.
Handle exceptions from the progress callback.
Make sure the clone looks pretty normal.
scrub scrub scrub.
Simpler initialization.
Rename functions.
Work with more rubies.
intern some things.
Raise on invalid :progress callback.
Pass values instead of a hash.

This trims the amount of work done inside the fetch loop.
rb_exc_raise
moar tabs