Changed implementation of SiteMapNodeCollection so it can be created via abstract factory injection and so it follows the lockable pattern.
Removed commented code referencing old SiteMapNodeCollection. Fixed exception with GetChildNodes() when the collection didn't contain the key.
Created GenericDictionaryFactory so dictionary objects can be mocked. Removed thread locking for dictionary creation as it is now done by the SiteMapLoader.