Clean-up: replace all uses of :use with :require

This makes the code easier to understand, especially for those new to Clojure.
Clojure has too many ways to refer to symbols from other namespaces, and we
really only need :require and :import.
Allow git/blobs to detect the "tree" is already a sequence of blobs
Implement git/can-add-blob?

This will make some error-checking code cleaner when a user is editing the
hesobase.
Document and establish pattern for hesobase commands

Commands are what the user invokes and what are used to merge two hesobase
repositories together.
Implement new-source command for hesobase modification

With this command, we have enough commands in hesobase for now to build a
functional, useful configuration. Upcoming commits will involve merges and other
stuff needed to make Hesokuri work end-to-end with the new configuration scheme.
Refactor git/add-blob and update coding style

Allow adding a specified blob-hash rather than just blob-data. This may help
later on, but this commit is mostly for readability. The documentation has been
properly indented, and the core logic no longer is split between arity
overloads.
Merge pull request #18 from matvore/master

Implement add-peer and new-source operations in hesobase