Update thread safety and lock/unlock strategies
- Updated registration and resolution lock/unlock stratagies for better thread safety and performance.
- Updated automatic service registration code for better performance and to use new locking mechanisms.
- Moved default scopes from Resolver to ResolverScope for better autocompletion.
- Added .name(fromString:) to Resolver.Name to handle passing string variables.