FC-82 Allow retries when write to database fails due to optimistic locking

Added OptimisticLockException which is thrown if optimistic lock fails i.e. condition check on 'version' attribute is violated

Signed-off-by: Steffan Westcott <steffan.westcott@clicktravel.com>
In this particular case, the only possible cause for the ConditionalCheckFailedException is if the single condition for the putItem failed. The condition checks that the expected value for the 'version' attribute is present. This is precisely an optimistic locking failure, so the thrown exception is correct. At present, this is the only site where OptimisticLockException is thrown.