Schema support

By defining  a schema for object types we can ensure values are properly coerced.  We can also specify indexing options there and eliminate the OBJIDX command (or repurpose it for managing and/or querying indices)

By supporting `object`, `list` `set` and `sortedset` as field types, we can store these fields in their respective redis types and seamlessly set/retrieve them without worrying about their locations.