Start adding merge functionality

This PR adds basic merge functionality for trees. As of right now, quite a few methods that would be "interesting" for working with merge conflicts are missing from the `Rugged::Index`, so resolving conflicts after a merge is not yet really possible. But merging `Rugged::Tree`s works fine.

Comes with a few totally basic tests stolen from libgit2.