Optional writeback when resolving conflicts

This pull request changes the conflict-resolution mechanism so that writing the resolved sibling back to the database becomes optional. This is an API-breaking change, in that conflict resolvers now return a resolved sibling and whether it should be written back or not. (Previously it was always written back.)

This is a fairly crude first iteration at improving the conflict-resolution mechanism. In the future it could be improved further by delegating the decision to the driver, which could use some heuristics (eg. sibling count, amount of data read) to conditionally write the result back.

The commits themselves contain more information about the changes I've made.