Concurrent load interlock (rm Rack::Lock)

Instead of forcing `Rack::Lock` when `eager_load` and `cache_classes` aren't on, just prevent actual conflicts.

We achieve this by means of a (reentrant) shared-exclusive lock: multiple running concurrent requests are fine, but any load activity must be performed in isolation.

:no_entry: not ready for merge: let's just test my claim that these rules are sufficient.