friendlier repo.init_at API

is_bare is now optional and defaults to false, same as git init. It's also
parsed as normal Ruby truthy value instead of type checked for True
or False, so more readable calls like this can be made

   Rugged::Repository.init_at('~/repository', :bare)
add a commit that changes a file in the fixture

The fixture commit just adds a content in an existing file for
reset --hard tests. The HEAD in the test repo is not changed.
Add repo.reset
remove repo reset tests not related to rugged
add repo.reset_path for selective path reset
reset_path: typecheck everything before alloc
bump libgit2 to fc12a6
bump libgit2 to e9b7ff
bump libgit2 to 0d3ccf
bump libgit2 to 90431f
bump libgit2 to 575a54
free stream after odb write

libgit2 docs: "The stream must always be free'd or will leak memory."
walker: free commit object after using the oid
fix reflog/signature leak in reflog_write

If there was an error appending or writing to the reflog
nothing was being freed.
fix signature/object leak in tag_create

If the message is not a string both the target object and tagger
signature were not freed.
fix memory leak when passing invalid parents type

Passing invalid parents type to Commit.create just raises
an exception without freeing the allocated signatures,
arrays and tree obj.
fix leak when alt array has entry type != string

The double array walking is not that great, but it has the nice side effect
of adding the alternative paths only if the input is somewhat valid.
Careful with that double-free!
Always use that GNU make!
Merge pull request #171 from nvloff/friendly_init_at

friendlier repo.init_at API