Refactored locking around request dictionaries. Quick global navigation fix

Previously the request dictionaries weren't being locked when read. Per conversations with @bsneed we are switching the locking over to @synchronized and rolling the reading inside the lock.

This PR also includes a previous small fix which solves for global navigation disappearing during primary navigation.