Add Commit, Tree, TreeEntry and Blob

* Fix a lot of bugs in GitObject's subclasses
** GitObject should not be extended in the future,
    PointerType doesn't quite work well with inheritence.
* Make Oid.getPointer forward to the OidT struct's Pointer
* Ditch OType from GitObject.lookup
*