Refine metrics for file operation failure.

* Report failures for each individual provider
* Report failures at sub-operations level
* Separate failures for external storage from internal storage

Note: It doesn't report failures when available bytes check fails or
moving cursor index fails. Delete failures also don't include failures
of cleanup after copy/move failures.

Test: Manual tests on file operations.
Bug: 33413461

Change-Id: I1713413f9498e8a264f8f54bffbfbad55f708b59
4 files changed