Even more powerful dictionary detection

There were some more cases where an IDictionary<string, T> was not being
detected by the UpcastDictionary.