Take 2 on polymorphism
Add @carlosmn's tests
Ok, now with shared base object
Add String() Method to ObjectType
Give gitObject.Free a pointer-receiver

This is needed to get runtime.SetFinalizer to work, which
expects a pointer-receiver. Without it the runtime will crash, when it
tries to garbage-collect an object.
Merge pull request #15 from Merovius/objtype

Add String() Method to ObjectType
Merge pull request #16 from Merovius/pointerrecv

Give gitObject.Free a pointer-receiver
Use ObjectType in TreeEntry
Merge pull request #18 from Merovius/objecttype

Use ObjectType in TreeEntry
Merge pull request #13 from libgit2/polymorphism-take-2

My take on polymorphism