-removed all raw schema dict updates and replaced with safe _updated_schema() function. Raw update creates duplicates if an existing key is reset.
-updated some schema validations (package requirements, uuids)
-added variant resource types (not finished)
-updated resource iteration so that unnecessary iteration (ie iteration over resources not visible from the target resources keys) doesn't happen. This also fixes an infinite loop bug
-'parent' term was being used to describe both parents and ancestors, some functions have been renamed to 'ancestor' to reflect correct meaning