Support initializing schematics object from normal python object, not just dicts, by attempting to use getattr() if [] (__getitem__) raises TypeError