Strict/lax commit API

This makes:
-  `git_commit_create()` more strict. The passed tree must be owned by the repo.
- `git_commit_create_from_oids()` more lax. The passed tree_oid can now be a plain simple oid.