JBPM-4101 - Retry interceptor on optimistic lock exception

Adds implementation of the Interceptor that allows to retry command execution in case optimistic lock exception has been thrown. Allows configuration of the actual exception class that indicates optimistic lock exception and defaults to hibernate's org.hibernate.StaleObjectStateException.

It's not turned on by default so it needs to be added whenever is needed.

Additionally logic of SingleSessionCommandService has been moved to TransactionalInterceptor to ensure retry will be done on new transaction.

Once merged retry interceptor will be used by default by jBPM runtime manager with persistence enabled