add structural merge strategy

the strategy follows simple rules to apply some structural merge of
patches. The result simulates changes in current document as if they
were applied to the last revision from the database.
Thus, modifications made to paths that were removed are simply discarded