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.
According to the documentation, [`dict` is an instance of `Mapping`](https://docs.python.org/2/glossary.html#term-mapping), so `isinstance(obj, collections.Mapping)` should be sufficient.