Use istype() when checking if canned object is a dict

Using istype(canned, dict) instead of isinstance(canned, dict) ensures that dict subclasses retain their type during unserialization. This also agrees with the implementation of serialize_object().
Merge pull request #4047 from sdrave/patch-1

Use istype() when checking if canned object is a dict