Add Jail and PermissionsMask storage wrappers

Extracted from #12086 

- \OC\Files\Storage\Wrapper\Jail: limits all access of the storage to a specific folder
- \OC\Files\Storage\Wrapper\PermissionsMask: applies a permissions mask on top of a storage

Moved to a separate PR to reduce the size of the indivual PR and makes them easier to review/merge and because @PVince81's metadata work could use the cache wrapper stuff introduced here.

cc @PVince81 @DeepDiver1975 
deprecated as of #12421 please use `\OCP\Constants::PERMISSION_*` instead