This class represents the way Canyon gets access to data input
Out of the box Canyon gives 5 options for input
File, Resource (classpath lookup), Property (environment or runtime variable)
or Directory (all the files in a particular directory) or Provider (your
custom implementation of this class)
By creating your own implementation of this class it is possible to create unlimited
ways of obtaining input data.