U4-4931 - 6.2 - lock contention & potential application lockdown

See details in issue tracker, this is #384 and #388 re-targeted for 6.2(.2).
With this particular provider we need to refactor the locking - currently the lock is a global static lock which really prohibits this provider from working correctly. In reality this provider shouldn't need any locks as it's a HttpContext based provider - generally single threaded. If we want to apply a lock here, it needs to be based on the current http context or executing thread, not a global one.

We don't really use this provider much but in the future I really want to use it for a few basic things as it can tremendously improve performance during a request especially for things like get by id.