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.
Yes, there is JPA's EntityExistsException, but I don't think we should
raise it directly ourselves (as the persister is also used without JPA,
i.e. with the classic API).

There is two cases really:

* The same entity is inserted twice within one session. This is discovered
by ORM (so we inherit it) and a org.hibernate.NonUniqueObjectException is
raised. That is then translated into a EntityExistsException in
AbstractEntityManagerImpl#convert(). Nothing to do for us here.
* An entity with a PK exists in the store, another one with the same PK is
inserted and the store itself detects this (that's the case at hand). ORM
raises a org.hibernate.exception.ConstraintViolationException in this case
(which is wrapped into a JPA PersistenceException). I dislike raising this
exception in OGM as it extends JDBCException, hence I just went for the
generic HibernateException. Btw. the exception type hasn't changed, it's
just pulled into JBoss logging now.

Is this sensible?