Allow unknown properties to be initialised when instantiating a model from the graph.
Revert some of the factory changes from the previous commit.

There is no need to dynamically create properties, all the information
should be in the graph already -- so also looking at instances to find
properties of a class when generating the models.