Pass out reference values in update functions.

This is needed because these reference values will be inserted in to the
secondary index trees instead of copies of the value.
Clear blobs after sindex delete.

After the blob is no longer referenced in anyway we clear out the blob
so the pointed to space can be gced.
Only put references in the sindex btrees.
Use inline_size instead of value_size.

This fixes numerous bugs.
fixed options parsing unit tests and added more
fixes #1287
Merge branch 'next' of github.com:rethinkdb/rethinkdb into next
Restored < operator to `counted_t`.
Merge branch 'next' of github.com:rethinkdb/rethinkdb into next
fixing some problems with import error reporting, performance, and interruption; import now requires --force to import a table with rows with identical primary keys
fixing an error in import when reading json files and tweaking performance slightly
Removed json_list_t typedef in btree.cc.
Fix a potential bug with erase range.

The bug was that it was possible for the erase range in the primary
btree to clean up a blob while the secondary btrees still had a
reference to it. Now this is impossible because we wait for the
secondary btree's erase to be completely done before we dispatch the
primary btree's erase.
Remove an unused constructor.
Added lazy_json_t and moved get_data and rdb_value_t to lazy_json.hpp.
Removed json_list_t typedef in btree.cc.
Made lazy_json_t used such that count will not have to load large values.
Adds a wrapper object for blobs.

This helps enforce some implicit constraints about what can be done with
blobs due to shared references.
Make a method not be public because it's unsafe.
Removed and obviated lazy_json_with_txn_t.