more wire encoding test cases
start writing own library for unpacking, since the upstream one appears broken - gives valgrind failures and occasional corrupt data.  working as of this commit, but doesn't have the arbitrary-object unpacking needed for Command, so several TODOs left there.
add backtracing on unpacking errors
if there's no primary key, use the first unique key that has all-non-nullable columns
when a hash fails, back off twice as much, to stop it battering on the same set of rows if the second half of the block that failed initially has the mismatch