Use a required `start` and `end`.

Use a required `start` and `end` instead of `offset` and `length`. It is
tiring to look at all the fixups at the start of every function. Having
exchanged `start` and `end` for `offset` and `length`, it got tiring
looking at the defaults testing at the start of every function.

The caller is required to specify the offset and length. Packet is a low
level library and the caller is doing the sort of work where these sorts
of conviences don't help.

Closes #100.