Track usage of open files instead of ReadAt calls
Track usage of open files instead of ReadAt calls

Track open files not in the context of ReadAt() calls, but in the
context of file usage: each fetch of ReaderAt object increments counter
which gets decremented only on Close() call; the last Close() call made
when usage count drops to 0 actually closes the file and cleans up
resources. This logic relies on the fact that Close() is always called
which should be the case for valid code.

This should resolve temporary "read /path/to/file: file already closed"
(SSH_FX_FAILURE) errors on clients.

artyom/deploy-tools