Add 'end' and sanity improvement for 'start'

start was treated internally as a positive number (for historical
reasons, this used to be a sensible thing to do). Now treate it
as a negative, just like 'end'

Add 'end' so we can now specify ranges that do not end '-1'.