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.
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.
Merge 1.8.0 into next
No more bloodseeker as a hero name.

Also changes a few names to be cooler IMO or in some cases include an in
joke.
Sort names.
Add more names.
Few fixes to names.
Merge branch 'next' into sam_1295
Merge branch 'sam_1295' into next