ZRANGEBYLEX and ZREVRANGEBYLEX implementation.
Lua: add cjson scripting test

Two simple decode tests added mainly to check that
the 'cjson' global gets registered and is usable.
Lua: Upgrade cjson to 2.1.0 (2012-03-01)

The new cjson has some improvements over our current version including
increased platform compatability, a new resource limit to restrict
decode depth, and better invalid number handling.

One minor change was required to deps/Makefile because this version
of cjson doesn't export itself globally, so we added a quick little
define of -DENABLE_CJSON_GLOBAL.

cjson now has an optional higher performing float parsing interface,
but we are not including it (g_fmt.c, dtoa.c) because it requires
endianness declaration during compile time.

This commit is exactly lua_cjson.c from 2.1.0 with one minor
change of altering the two Lua includes for local search
instead of system-wide importing.
Lua: Use Redis solaris compatability for cjson too

cjson calls isinf, but some Solaris versions don't have isinf
even with the attempted fix we have in deps/Makefile.

We can harmlessly include the Redis solarisfixes.h header to
give cjson proper isinf.

Note: cjson has a compile-time setting for using their own defined
isinf, but the Redis definition in solarisfixes.h is more complete.

Fixes antirez#1620
Lua: remove new warning added by cjson header

clang doesn't like "extern inline" when no definition
is given right away.
Lua: upgrade cmsgpack to 0.4.0

Main reasons for upgrade:
  - Remove a warning when building Redis
  - Add multi pack/unpack
  - Improve memory usage and use Lua allocator properly
  - Fix some edge case encoding/decoding bugs
Lua: add cmsgpack scripting tests

Basically: test to make sure we can load cmsgpack
and do some sanity checks to make sure pack/unpack works
properly.  We also have a bonus test for circular encoding
and decoding because I was curious how it worked.
Lua: use zmalloc for Lua memory allocation

Lua allows us to define the memory allocation function it
uses internally.  Let's tell Lua to use zmalloc.

Now Lua memory usage is accounted for in Redis-wide
memory usage statistics.  The `used_memory_lua` field
of INFO MEMORY is now a subset of `used_memory` instead of
being additional memory usage.

Fixes #1661 too.

All tests pass (including `unit/scripting`):
\o/ All tests passed without errors!