Don't check if callback is a function
Make `invalid` a GitObject property
Some tasks
reference:: Add lookupSync(...) and #branch
commit:: Add files for Commit
Merge changes upstream