* Fixes 9306

Caching was not using the fully qualified resource key, so if a short
key was already used then it would be used for another of the same name,
even if the assembly and/or dictionary were different.
* Fixes bug with initial fix for 9306

If the target object is null, then at least try parsing the key and
returning it without using the target
*Fix for 9299 that doesn't break existing code

If you have a dictionary that is Resources.Type, then you need the
assembly.GetType. Then, a fallback can be to check all assemblies.
Before this fix, Resources.Type would try to match on Resources_Type
which does not exist
* Add Tests to display fix for bug 9306. Also...

Fixed a bug where key is not set. This should result in a null object
and null string, not a null key and filled in assembly and dictionary
* 9306 fix to keep consistent with old code

Checking String.Empty or Null
Merge pull request #22 from JustinPihony/master

* Fixes 9306
* Added the fix to 9306 to the other project types as well (SL and WP)
* Some formatting and commenting.
* Implemented feature request #9304
* Fixes #9308