Small performance enhancements for cut: bytes cutting

Several small performance enhancements.

For very large, or infinite ranges, `uutils cut` bytes cutting is now 3 times faster than `GNU cut`.

    $ ranges=1-
    $ perf stat -r 10 build/cut -b $ranges `find /boot -type f -readable` >/tmp/uucut
    ...
    0.095898887 seconds time elapsed ( +-  0.14% )
    $ perf stat -r 10 cut -b $ranges `find /boot -type f -readable` >/tmp/gcut
    ...
    0.308146576 seconds time elapsed ( +-  0.24% )

    $ ranges=4-6,3-8,20-30,15-25,23,6
    $ perf stat -r 10 build/cut -b $ranges `find /boot -type f -readable` >/tmp/uucut
    ...
    0.102587877 seconds time elapsed ( +-  0.07% )
    $ perf stat -r 10 cut -b $ranges `find /boot -type f -readable` >/tmp/gcut
    ...
    0.179558780 seconds time elapsed ( +-  0.06% )

    $ ranges=-4097
    $ perf stat -r 10 build/cut -b $ranges `find /boot -type f -readable` >/tmp/uucut
    ...
    0.095640648 seconds time elapsed ( +-  0.13% )
    $ perf stat -r 10 cut -b $ranges `find /boot -type f -readable` >/tmp/gcut
    ...
    0.305291892 seconds time elapsed ( +-  0.24% )

For relative performance improvement see issue #345.
I just did a benchmark of the different solutions (with `-b 1`):

* 0.073622189 seconds for the current pull, which uses unsafe indexing.
* 0.096472123 seconds for the current `uutils/coreutils` master, which uses safe indexing.
* 0.093665627 seconds for `for (idx, byte) in self.buffer.slice(self.start, self.end).iter().enumerate()`

Forgoing the index of the newline byte is not possible as it is needed to update the start of the filled buffer.

The choice is between "safety" and all out performance. The safety guaranteed by the compiler is only to `fail` for invalid/out of bounds indices. This means it does an `start <= end && end <= len` assert for every byte and just crashes if it fails. This does nothing to guarantee that the indexing in your implementation of the algorithm isn't off by one, but comes with a large runtime cost.

If you rather not have unsafe blocks in the utilities then the `slice().iter()enumerate()` is a good solution.

All this to