fix lua_cmsgpack pack map as array
DEBUG SDSLEN added.

This command is only useful for low-level debugging of memory issues due
to sds wasting memory as empty buffer at the end of the string.
Don't over-allocate the sds string for large bulk requests.

The call to sdsMakeRoomFor() did not accounted for the amount of data
already present in the query buffer, resulting into over-allocation.
Fix DEBUG SDSLEN after 2.8 back port.
tryObjectEncoding(): don't call stringl2() for too big strings.

We are sure that a string that is longer than 21 chars cannot be
represented by a 64 bit signed integer, as -(2^64) is 21 chars:

strlen(-18446744073709551616) => 21
tryObjectEncoding(): optimize sds strings if possible.

When no encoding is possible, at least try to reallocate the sds string
with one that does not waste memory (with free space at the end of the
buffer) when the string is large enough.
Fix an hypothetical issue in processMultibulkBuffer().
Merge pull request #1244 from yihuang/2.8

fix lua_cmsgpack pack map as array