OGM-642 Avoiding read prior to insert if possible

Adding new method `getDuplicateInsertPreventionStrategy()`on `GridDialect`. By default, we do the explicit look-up as before, but of the store itself can detect the situation, we rely on that and omit the additional read.
Ok, I've created [OGM-647](https://hibernate.atlassian.net/browse/OGM-647) for making sure that an `EntityExistsException` is raised in both cases described above. I'll push that commit to this PR.

Note that this isn't be strictly required though, as the spec suggests that `EntityExistsException` *or another exception* may be raised to indicate this error (and that's what's ORM does in the second case I've described). Nevertheless always throwing `EntityExistsException` surely is nicer.