Incremental: allow database branches to be 'diff'ed

This uses the CreateRow/DeleteRow/WriteField type already used by the
database callback and the redo_log.

The unit test currently fails.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>

Conflicts:
	ocaml/database/db_cache_types.ml