BaseJob::abandon() fixes
BaseJob::abandon() fixes

1. It should work with non-started jobs now (Closes #289).
2. It should allow clients to still handle `finished()` instead of
cutting them off right before emitting the signal.

QMatrixClient/libqmatrixclient,QMatrixClient/libqmatrixclient,Fxrh/libqmatrixclient