Variable range bounds are now permitted

This is achieved by naming variables at the end of a range.
Instead of expanding out a range, a new range type has been created so
    that ranges are more compact after they are more than 2 or 3
    numbers long.
Some of the examples were broken or had confusing output. They are now
    fixed.
For loop properly interprets a range, as does valueToString.
Ranges can be properly indexed.
Changing the variable which sets the bound for a range changes the
    values contained in the range.
Make deleteInTree not segfault...