Steps towards removing datum_t::as_object()
Replaced datum_t internal object representation by vector
Removed datum_t::as_array() interface.
Fixes datum_t::get_field(). The binary search went in the opposite direction.
Merge branch 'daniel_2244' into daniel_buf_ref_datum

Conflicts:
	src/rdb_protocol/datum.cc
Style fixes
Merge branch 'daniel_2244' into daniel_buf_ref_datum
Re-add a type check to datum_t::get(size_t)
Use move iterator in datum_t::splice
Rename datum_t::add to datum_t::replace_field and require that the field already exists.
Removed unused constructors of datum_array_builder_t and datum_object_builder_t
Added a comment mentioning the complexity of the datum_t(std::map<...> &&) constructor.
Avoid double type-checking in datum_t::get(size_t)
Renamed datum_t::size() to datum_t::arr_size()
Renamed datum_t::num_pairs() to obj_size()
Merge branch 'next' into daniel_buf_ref_datum

Conflicts:
	src/rdb_protocol/terms/arr.cc