Externalise pull/push behaviour to PullPushPolicy
Cleanup pull/push API usage & make the pull fail on non fast forward merges
Implement "rebase on failed pull" and "restore on rebase conflict" policy
Unignore basic arquillian tests