Add quicklist implementation

This replaces individual ziplist vs. linkedlist representations
for Redis list operations.
Remove config option list-max-ziplist-value

As with all config option removals, this will stop Redis
from loading any config file with that old directive.

Maybe we should allow Redis to ignore invalid directives instead
of halting and refusing to load a config file with unknown settings?
Add ziplistMerge()

This started out as #2158 by sunheehnus, but I kept rewriting it
until I could understand things more easily and get a few more
correctness guarantees out of the readability flow.

The original commit created and returned a new ziplist with the contents of
both input ziplists, but I prefer to grow one of the input ziplists
ziplists and destroy the other one.

So, instead of malloc+copy as in #2158, the merge now reallocs one of
the existing ziplists and copies the other ziplist into the new space.

Also added merge test cases to ziplistTest().
Free ziplist test lists during tests

Freeing our test lists helps keep valgrind output clean