Update with master

Implement reset, using GIT_OB_ANY so it accepts tags and commits, with tests for the three types of git reset (and doc about it)