Throw InvalidOperationException when DeserializeFromString<Dictionary<st...

...ring,string>> is passed a list

A key/value mapping is expected, so an InvalidOperationException is
preferred over an IndexOutOfRangeException, which is what is currently
occurring.