Add cherry_pick() and revert()

This PR adds support for ```cherry_pick``` and ```merge_```. It also removes ```add_conflict``` from ```Index``` as there is no way to actually add a conflict (you cannot construct an ```IndexEntry```).