push: pass a `pushoperation` object to localrepo.checkpush
The `pushoperation` object contains strictly more data the arguments currently
passed to `localrepo.checkpush` we pass the new object instead. This function is
used by MQ to abort push that includes MQ changesets.
Note: extension that may use this function will have to align.
Testing that hghave does not crash when checking features
$ "$TESTDIR/hghave" --test-features 2>/dev/null