Generate etag when missing

Tentative fix for https://github.com/owncloud/core/issues/12172

Note: this doesn't cover all code paths, only the ones that explicitly request the file's metadata (PROPFIND)

Please carefully review @icewind1991 @DeepDiver1975 
@icewind1991 should it be `$path` (/user/files/thefile.txt) or `$data['path']` (/files/thefile.txt)