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.