fix randstring bug
Check available tcl versions
Enforce tcl 8.5 or newer
Use `info nameofexectuable`  to find current executable
Keyspace events notification API.
Two fixes to initial keyspace notifications API.
Fixed over-80-cols comment in db.c
Initial test events for the new keyspace notification API.
notifyKeyspaceEvent(): release channel names using the right pointers.
Fix decrRefCount() prototype from void to robj pointer.

decrRefCount used to get its argument as a void* pointer in order to be
used as destructor where a 'void free_object(void*)' prototype is
expected. However this made simpler to introduce bugs by freeing the
wrong pointer. This commit fixes the argument type and introduces a new
wrapper called decrRefCountVoid() that can be used when the void*
argument is needed.
Keyspace events added for more commands.
Enable keyspace events notification when testing.
decrRefCount -> decrRefCountVoid in list constructor.
Keyspace events: it is now possible to select subclasses of events.

When keyspace events are enabled, the overhead is not sever but
noticeable, so this commit introduces the ability to select subclasses
of events in order to avoid to generate events the user is not
interested in.

The events can be selected using redis.conf or CONFIG SET / GET.
Keyspace notifications: fixed a leak and a bug introduced in the latest commit.
Send 'expired' events when a key expires by lookup.
Tests for keyspace notifications.
Generate del events when S*STORE commands delete the destination key.
Z*STORE event fixed: generate del only if resulting sorted set is empty.
Merge pull request #914 from catwell/unstable

fix comments forgotten in #285 (zipmap -> ziplist)