Adds support for oversharding in unittests.
Adds a test which reveals to oversharding bug.
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.
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.
Fix a typo.
Merge branch 'next' into merge_br
fixed pragma that breaks in old GCC versions
Merge branch 'next' into sam_665