remove lolevel's object-owner from the git module
add object owner slot to git record types

This adds a slot to Git record types that holds a reference to that
object's "owner". For most objects (including the "proper" Git objects:
commits, tags, blobs & trees), this is the owning repository, while for
some others (such as tree- and index-entries) it's the parent record
from which the object was retrieved.

This change allows the parent objects to be accessed via their children,
removes the need for hacks like using tagged pointers to prevent parent
objects from being GC'd (thus invalidating their children), and prevents
the user from having to keep a reference to the repository around at all
times.
try to detect repo from tree-entry in tree-entry->object

This allows a tree-entry to be passed to tree-entry->object without an
accompanying repository argument.
add documentation for checkout
commit-ancestor & commit-parents tests
indentation fixes, cosmetic
spelling fix in tests, cosmetic
bind checkout_opts, use FORCE as default checkout strategy
add checkout tests
standardize formatting of "HEAD" reference in docs
fix create-tree's signature in docs to indicate that index is optional
Merge branch 'object-owner' into development

Conflicts:
	git.scm
update tree-entry->object docs to indicate repo arg is optional
remove section in docs about keeping handle to repo (no longer necessary)