Added a metamorph collector to output ranges.

The collector interprets the first literal it receives as a range start
and the second as a range end. The values are converted to integers and
for each number between the two an additional literal is generated.
Usage:
<range name="range">
  <data source="first" />
  <data source="last" />
</range>