An Allocator is used to increment a key in allocation blocks of arbitrary size.
Note: if all you want is to increment a key and retry on retryable errors, see client.IncrementValRetryable().
NewAllocator creates a new ID allocator which increments the specified key in allocation blocks of size blockSize. If the key exists, it's assumed to have an int value (and it needs to be positive since id 0 is a sentinel used internally by the allocator that can't be generated). The first value returned is the existing value + 1, or 1 if the key did not previously exist.
Allocate allocates a new ID from the global KV DB.