git-isvn(1): Start porting from git to libgit2.

It builds! Ship it.

Minor details:

- Build git-isvn(1)/git(1) with -fvisibility=hidden so libgit2 doesn't
  try and call main binary symbols of the same name that don't do what
  it expects
- Checkout (post-clone) is mostly ported over to libgit2. Some details
  missing.
- Transition APIs: Compatible with internal APIs, #define'd out to
  different names. Will "fix" APIs after seperation (hashmap). "Good
  enough" replacement hashmap implementation in.
- Drop dependency on git internal option parsing in favor of small
  wrapper over getopt_long(3).
- SVN revision application / commit (isvn-brancher.c) has been libgit2-
  ified.
- Gradually removing git(1) headers from git-isvn(1) files.
- Fixups: SVN revs w/out author information work; SVN add-copyfroms
  work.

TODO:
- Proper hash for hash tables (incl. intern()).
- Resolve (new) deadlock issue in brancher.
- Further detach from git(1).
- Fix remaining TODO and XXX items throughout git-isvn(1).