OAK-1202: Retry Persisted merge
- Introduced a MERGE type in CommitFailedException to distinguish it from other commit failures
- Make sure KernelNodeStoreBranch throws appropriate exceptions on failures
- Leverage MicroKernel.reset() when Persisted.merge() fails
- Introduced a new branch state ResetFailed when the branch cannot be reset
- Moved the retry logic to AbstractNodeStoreBranch
- Removed the now duplicate retry logic in MongoNodeStoreBranch

git-svn-id: https://svn.apache.org/repos/asf/jackrabbit/oak/trunk@1545190 13f79535-47bb-0310-9956-ffa450edef68