[new] automatic conflict resolution

When one tries to save a document into the database instance and a
conflict occurs, it is now possible to automatically resolve the
conflict and save the resolved document into the database.
This works with two new concepts:
 - a conflict resolution strategy chosen for each database that tells
   sohva how to merge changes,
 - a retry credit that tells sohva how many times it should reattempt to
   save a document when a conflict occurs.

For now, one strategy exists which is the `BarneyStinsonStrategy` based
on the motto "new is always better": every document in the database is
overwritten by the new saved one.
Another strategy based on a three-way merge with higher priority for
client document is being developed, that will allow for more
fine-grained patches

Patches are based on Json Patch
(http://tools.ietf.org/html/draft-ietf-appsawg-json-patch) and the Json
diff algorithm uses the Patience algorithm for resolving array diffs.

By default, sohva does not retry on conflict.

Any new strategy can be written and passed to the database client object
upon creation to tune the behavior