Encapsulated the notion of a source into a class instead of just 
representing a source as a regular list (of SourceReadings).
Reworked provisional name generation so that it produces the same 
name for different readings on the same source.