A Source of Product events.
ProductSources are used to read Products from other formats like XML.
ProductSources send a stream of events to ProductOutputs and provide stream
like processing for Products.
ProductSources should strive to call ProductOutput methods in the following
onProperty(), by property name alphabetically
onLink(), by relation alphabetically, by URI alphabetically