Save the state of codemirror
No longer confuse curl and libcurl in the configure script

Closes #2559
Review 1775 by @larkost
Correct exit code when test/run fails

Review 1675 by @larkost
JS driver - batchConf -> batch_conf - Related to #2707
Typeahead should not overflow
Add a pre-release status script

Review 1796 by @larkost
Made change_tracking_map_t save by wrapping access to the changed key set into a subscription
Removed debug message, because it was often triggered incorrectly.
Typo
Make table interface abstract

Introduced a new abstract interface for the query language code to send queries to tables. This interface is approximately equivalent to the old table_t, except that it only represents the table itself, without any of the other data that table_t carried such as the use_outdated flag, the secondary index name, etc.

The main implementation (and currently the only implementation) is real_table_t, which translates its queries into read_t and write_t objects and passes them on to an underlying namespace_interface_t. In the future there will be another implementation for artificial tables.

I also separated out the parts of the rdb_protocol/ directory that are responsible for communicating with the B-tree and clustering code into a rdb_protocol/real_table/ sub-directory.
Correct a typo in a comment.
Remove an RSI comment that isn't relevant.
cursor.close() returns a promise -- #2591
Typo
Propagate the callback for cursor.close
Made base_table_t API work in terms of datum_t instead of store_key_t. Fixed a bug where changefeed::client_t accessed a namespace_interface_t from the wrong thread.
Restructured change_tracking_map_t safety checks
Removed unused include
Improved comments about single-argument env_t constructor.
Used a "pristine" env for secondary index evaluation in rget_cb_t::handle_pair.