Propagate deletes
Current behaviour:
- a blob is deleted locally, but we are offline.
- we fail and an error is raised to client, blob isn't deleted.
- it is currently expected that the application retry
What we want: if a blob is deleted locally, but remote deletion fails, then the blob is marked as PENDING_DELETE and deleted on next sync.