Implement hesokuri.git/remove-entry

This is used in a manner similar to add-blob, in that it transforms a tree that
can be written back to the repo with write-tree.

Ultimately, this will be used when the user must modify the configuration, which
will soon be stored in a database (see the namespace docstring of
hesokuri.hesobase)
Add missing argument to invocations of ex-info
Change the way we confirm success for creating temp repos

This change allows Windows machines to pass hesokuri.git-test. Before this
change, we looked for the .git directory in the output of git init to confirm
everything worked. However, msysgit outputs the path in a different form than
what is normal (/ instead of \, e.g. "C:/Users/JDoe/foo"). So now, just use
throw-if-error to confirm success.

Note that searching for "Initialized empty Git repository", though tempting,
does not work for localized environments.
Configure user information for temporary repos during testing

This is needed to avoid errors when doing 'git commit' during unit tests, since
this needs to read user.name and user.email config values. Git reports an error
if they are set neither globally nor on the repo.
Move fast-forward? logic from repo to git namespace

This is where the logic should be. Also, clean up tests and make the function
more flexible in terms of arguments it accepts.
Allow unwanted-branches to be specified with hashes

This makes it easy to re-use the same branch name later, without removing it
from unwanted-branches before creating it. This will be supported by the
hesobase, which will have a user interface that makes it easy to add unwanted
branch/hash pairs. Still supporting branch-name-only unwanted sets because these
are simple enough for many use cases and are easy to enter in manually when
using the legacy configuration file.
Merge branch 'origin-master'

Conflicts:
	test/hesokuri/git_test.clj
Introduce a Context protocol into hesokuri.git

This allows the Git command and the repository location to be specified in a
single argument, which removes the need for most of our arity overloads that
take a default Git command path.
Merge branch 'origin-master' into missing-arg

Conflicts:
	test/hesokuri/git_test.clj
Merge pull request #14 from matvore/missing-arg

Add missing argument to invocations of ex-info
Merge pull request #15 from matvore/windows-compat-error

Fix logic for creating temporary repos in tests
Fix formatting in hesokuri.git/remove-entry

- Use , to indent the last continued 'cond' entry. Considered doing this for the
  hesokuri.git/remove-entry test case, but this made the code look more
  cluttered. Decided using blank lines is more natural for this case.
- Do not use arity-overloading syntax for the defn, since there is only one
  arity for this function.
Merge pull request #12 from matvore/master

Implement hesokuri.git/remove-entry
Merge branch 'master' into usr-int

Conflicts:
	src/hesokuri/git.clj
	src/hesokuri/hesobase.clj
	test/hesokuri/git_test.clj
	test/hesokuri/testing/data.clj
Indent multi-line docstrings of new functions

New functions meaning functions that haven't been merged into master yet.