Firebird fix for CanCreateUniqueConstraint() integration test

I readded a check to the rollback: if(Transaction == null)return; implied it, but it was refactored to the base class.
The stack of processedexpressions is only filled if there was a begintransaction. Short of that the Transaction is null. To be specific I choose to check directly the stack instead of readding the original Transaction==null. In the end they mean the same thing, and hopefuly won't attract anyone to remove it in the future :))

I implemented the Reverse() methods for CreateConstraintExpression and DeleteConstraintExpression. It seemed simple. Do you see any problems with it?
It was an oversight they wasn't implemented, or there is a real reason they were left out?