Support for graftpoints

https://git.wiki.kernel.org/index.php/GraftPoint

Allow the creation and usage of grafted commits. Graftpoints/Grafted commits are commits with "fake" parents.

New files that can be read: info/grafts and shallow

Shallow support is dependent on this feature.