Use Rest to wrap all RestClient calls

Also merge `RestPostFailed` and `RestGetFailed` into `RestCallFailed`
(and use it in the new `delete` method).