HyperLogLog sparse representation description and macros.
HyperLogLog sparse representation slightly modified.

After running a few simulations with different alternative encodings,
it was found that the VAL opcode performs better using 5 bits for the
value and 2 bits for the run length, at least for cardinalities in the
range of interest.
HyperLogLog refactoring to support different encodings.

Metadata are now placed at the start of the representation as an header.
There is a proper structure to access the representation.
Still work to do in order to truly abstract the implementation from the
representation, commands still work assuming dense representation.
hllAdd() refactored into two functions.

Also dense representation access macro renamed accordingly.
hllCount() refactored to support multiple representations.
HyperLogLog sparse representation initial implementation.

Code never tested, but the basic layout is shaped in this commit.
Also missing:

1) Sparse -> Dense conversion function.
2) New HLL object creation using the sparse representation.
3) Implementation of PFMERGE for the sparse representation.
HyperLogLog sparse to dense conversion function.
Create HyperLogLog objects with sparse encoding.
Fix HLL sparse object creation.

The function didn't considered the fact that each XZERO opcode is
two bytes.
Increment pointer while iterating sparse HLL object.
Fix HLL sparse object creation #2.

Two vars initialized to wrong values in createHLLObject().
Macro HLL_SPARSE_XZERO_LEN fixed.
hllSparseSum(): multiply 1 * runlen for zero entries.
Abstract hllSparseAdd() / hllDenseAdd() via hllAdd().
Fix seqlen computation in hllSparseAdd().
Fix hllSparseAdd() new sequence replacement when next is NULL.

sdsIncrLen() must be called anyway even if we are replacing the last
oppcode of the sparse representation.
hllSparseAdd() sanity check for span != 0 added.
hllSparseToDense API changed to take ref to object.

The new API takes directly the object doing everything needed to
turn it into a dense representation, including setting the new
representation as object->ptr.
PFDEBUG added, PFGETREG removed.

PFDEBUG will be the interface to do debugging tasks with a key
containing an HLL object.
PFDEBUG DECODE added.

Provides a human readable description of the opcodes composing a
run-length encoded HLL (sparse encoding).
The command is only useful for debugging / development tasks.