Hacked in lazily deserialized datum_t
Bug fix to datum serialization from previous commit
Another bug fix to lazy datum deserialization
Minor deserialize_lazy cleanup
Make lazy datum serialization smarter: Only do it sometimes.
Also made it backwards compatible.
Cleaned up lazy datum deserialization logic. Completely hid LAZY_SERIALIZED type from public datum_t interface.
Style fix
Merge branch 'next' into daniel_lazy_datum_deserialize

Conflicts:
	src/rdb_protocol/datum.cc
Removed unnecessary line
Use varint for serializing lazy datum size
Force full deserialization before writing to disk.
Made print_secondary not take a default value for tag_num.
Added and made use of type reql_version_t, instead of using cluster_version_t for reql versions.

(Very soon we might be passing reql versions over the cluster, and it would
be weird to be sending cluster_version_t values.)
Made print_secondary and its extractors take a reql version, passed up the reql version everywhere except to sindex_readgen_t.
Added the sindex_reql_version field to rget_read_response_t, but right now nothing uses it.
Made sindex_reql_version be initialized.
Made sindex_readgen_t::sindex_sort_read actually use the true secondary index reql version... barring bugs.
Merge branch 'grey_binary_sindex' into sam_2789_keyfix
Made datum_t::cmp and print_secondary be properly reql-versioned, but passed in reql_version_t::RSI everywhere.
Made predicate_term_t::pred be a plain reql_version_t-taking func.