private void checkLowerBound(final long value) {
        if (value < 0) {
            throw new IllegalArgumentException("value must be >= zero");
        }
    }
Represents an unsigned long that fits in length bytes. If a length of 8
is used then it can only represent numbers up to {@link Long#MAX_VALUE}.
See {@link UnsignedBytesInstances} for max values for different byte lengths.
stroom-lmdb/src/main/java/stroom/lmdb/serde/UnsignedLong.java