move versions if a file was renamed in a shared folder

get the source path and owner in a pre hook and the target path and owner in a post hook

fix #11761

cc @PVince81 
The hooks are only loaded if the app is enabled.

At least in theory it could happen that at the beginning the app is enabled, we load the hook, then at some point the app gets disabled and afterwards a operation is called which triggers the hook. Because disabling a app doesn't unload the hooks automatically. Beside unit tests we probably never enable/disable apps during run-time, but it could happen. Honestly I never added the check by my own. It was already there from the beginning and I always copy/pasted the methods.