Fixed get_component method in Field to get working with subclassess of collections.Mapping

Method get_components checks if object is instance of dictionary, but it fails when custom dict-alike implementations (especially subclasses of collections.Mapping) are used.
This commit adds checking for presence of dictionary interface methods on obj in method get_components.
Yup, and confirmed this is true all the way down to 2.6