I find this quite a bit easier to follow now in the recursive workflow. However I think it still needs some documentation.

Put into plain english what the following statements imply VIA an inline comment:

* `} else if (! _.contains(Constants.primitives, type) && ! resource.models[type]) {`
    * E.g., `// If the type of the property is a model object and hasn't been added to this resource, recursively add the models it may reference to the resource as well`
* `if (property.items && property.items.$ref) {`
    * E.g., `// If the type of the property is an array, and the array elements are a model object (in contrast to a primitive), recursively add the models it may reference to the resource as well`