WIP: Cherry pick support

This PR adds support for cherry picks. It is heavily based of the existing ```git_revert*``` implementation.

Still work in progress, lots of tests still to write...