Use a wrapper for WSRequestHolder to allow overriding logging more easily. Also, caching
Merge branch 'master' into virtual_collection_rework