Added javadocs and updated sparse clone implementation.

Added javadocs to all new remote classes.
Updated sparse clone to only map a single remote branch.
Updated merge to allow merging from a detached head.
Made it so merge pull will merge the local changes into the remote changes,
instead of the other way around.
Fixed a logic error in the commit fetch order.  Parents will now be fetched
before their descendants.
Removed the sparse flag from commits that represent filtered changes.