Missing vars.
const correctness
Index testing.

Reduce perftest iterations so commands can be inspected. Add lookup by
index to first determine current full scan and after index is
implemented confirm index lookup
Index implementation.

Read indexes from redis, updated indexes on insert, update and delete.

Initial implementation uses EVAL. This could be improved to use WATCH on
the index and normal commands which are repeated on failure.

Initial version works correctly, but is bandwidth heavy. It also suffers
from being non symmetrical in that the insert operation reads from the
local index list, while the erase operation reads from the remote index
list. They should in all cases be equal but this is not guaranteed.

Additionally, because the EVAL script accesses a dynamic key list (based
on indexed columns) it may not play nice with redis cluster.

All good reasons to refactor later with WATCH MULTI EVAL
Order integer and float indexes correctly
Improve vector_find. const correct + others

Allow comparitors to have differing parameters (i.e. search for a struct
by name) by making the order of parameter application consistent.
Indexes working - not fully validated.

Indexes are now differentiated based on their type. It is possible to
provide optimised behaviour for indexes on integral and floating point
types, while falling back to suboptimal behaviour for string indexes.

Direct lookup on string indexes is fast (expected to be the common case)
while relative lookups (> >= < <=) at the moment fall back to a full
table scan.