DataItemConverter
Classes that implement this interface should be able to reconstruct an object of type T from a given DataItem - on the assumption that the DataItem does accurately describe all components required to create a new instance of type T
This is typically a reciprocal implementation of a DataItemConvertible; such that semi-complex types can be accurately described by a structured format such as DataList or DataObject using an instance of a DataItemConvertible and subsequently recreated if necessary using an the appropriate implementation of DataItemConverter