Adds support for oversharding in unittests.
Adds a test which reveals to oversharding bug.
Removed .shard of the write in listener_t<>::perform_enqueued_write.

Either the change is correct, or the code was already broken.
Assertions in both the memcached and rdb_protocol write_t::shard
methods would make the code crash if the shard call could ever receive
a subset of the write's region.  The .shard call in listener.cc was
added as part of a larger change to a bunch of stuff that got things
working, not for specific discernable reason.  And it would be
obviously broken if it ever actually _did_ affect the value of the
write being passed on to the store.
Change the way we switch from history to options. Related to #647 and #584
Ostensibly fixes oversharding bug. (#606)

Adds another constructor for rdb_rget_depth_first_traversal_callback_t
which filters out keys which fall outside of a range.
Fix for #691
Merge branch 'next' into merge_br
Clean code, fix bug, refactor a little. Related to #647 and #584
Add simple --ccache option to ./configure
Adds oversharded versions of rdb_protocol tests.

They all pass btw.
Adds comments about different constructors.

The rdb_rget_depth_first_traversal_callback_t now has 2 different
constructors, this adds comments which clarify what each is intended
for.
Fixed type of limit and zip (c.f. Issue #678).
changed ruby driver errors for objects (cf. Issue #632)
added automatic integer conversion (c.f. issue #527)
fixed mutation reporting (c.f. Issue #421)
Merge branch 'next' into sam_639
Fix a typo.
Adds a unittest to expose issue_690.

This exposes an issue that arises when sindex post construction is
interrupted due to the store being deleted.
Adds a potential fix.
adds JS timeout option