docs: public Bits range(final int start, final int length) {
      if (0 == length) {
        return Bits.NULL;
      }
      if (start < 0) {
        throw new IllegalArgumentException();
      }
      if (start + length > this.bitLength) {
        throw new IllegalArgumentException();
      }
      final Bits returnValue = new Bits(
        new byte[(int) Math.ceil(length / 8.)],
        length);
      shiftLeft(this.bytes, start, returnValue.bytes);
      int bitsInLastByte = length % 8;
      if (0 == bitsInLastByte) {
        bitsInLastByte = 8;
      }
      returnValue.bytes[returnValue.bytes.length - 1] &= 0xFF << 8 - bitsInLastByte;
      return returnValue;
    }